class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int minNumberDisappeared(vector<int>& nums) {
// write code here
int n = nums.size();
int ans = n + 1;
// 因为最后结果不是在1-n之间,就是n+1
// 所以将小于等于0的数赋值为n+1
for(int i = 0; i < n; i++) {
if(nums[i] <= 0)
nums[i] = n + 1;
}
// 然后统计数值小于n的nums元素,将其相应的位置上的元素变为相反数
for(int i = 0; i < n; i++) {
int x = abs(nums[i]);
if(x <= n)
nums[x - 1] = -1 * abs(nums[x - 1]);
}
// 遍历nums,如果有大于0的元素,即为不存在的元素
for(int i = 0; i < n; i++) {
if(nums[i] > 0) {
ans = i + 1;
break;
}
}
return ans;
}
};