这题简单的有点过分了吧。。。
一开始还纳闷会不会有重复的元素,后来看到[0,n]范围,那么肯定有n+1个数字,然后要在n 个数字里面找谁没有,那肯定没有重复的元素,如果有重复,就不止缺少一个元素了。
思路:
排序之后,看谁跟下标不一样,就返回它之前的那个值;如果遍历到最后发现都一样,那肯定就是最后一个值 n 丢掉了。
代码:
class Solution {
public:int missingNumber(vector<int>& nums) {// 排序,然后看谁下标的差距和数的差距不相等,就说明找到了sort(nums.begin(), nums.end());int i = 0;for(i = 0; i < nums.size(); i++){if(nums[i] != i){return nums[i]-1;}}return nums.size(); }
};