leetcode268. 丢失的数字

这题简单的有点过分了吧。。。

一开始还纳闷会不会有重复的元素,后来看到[0,n]范围,那么肯定有n+1个数字,然后要在n 个数字里面找谁没有,那肯定没有重复的元素,如果有重复,就不止缺少一个元素了。

思路:

排序之后,看谁跟下标不一样,就返回它之前的那个值;如果遍历到最后发现都一样,那肯定就是最后一个值 n 丢掉了。

代码:

class Solution {
public:
    int missingNumber(vector& 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();        
    }
};

你可能感兴趣的:(LeetCode,算法,leetcode,数据结构)