這題簡單的有點過分了吧。。。
一開始還納悶會不會有重復的元素,后來看到[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(); }
};