给定一个无序整型数组,找出数组中未出现的最小整数(cvte笔试题)
例如:
输入:4,-1,1,3 输出:2
方法一:
int missNum(vector<int> nums)
{
int l = 0; // 下标从0开始,
int r = nums.size();
while (l < r)//从0开始找到每个位置应放入正确的元素
{
if (nums[l] == l + 1)//当前位置正确放置跳过
{
l++;
}
// nums[l] 减去 1 表示数nums[l] 应该在的位置
else if (nums[l] < l + 1 || nums[l] > r || nums[nums[l] - 1] == nums[l])
{
r--;
nums[l] = nums[r];
}
else{
swap(nums[l], nums[nums[l] - 1]);
}
}
return l + 1;
}
方法二:参考博客地址:http://blog.youkuaiyun.com/ju136/article/details/8153274点击打开链接
从后往前遍历每一个数,如果元素的值为0<a[i]<n&