您的位置:首页 > 其它

268. Missing Number(leetcode O(n))

2016-09-30 21:03 387 查看
题目地址

https://leetcode.com/problems/missing-number/

Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.

For example,

Given nums = [0, 1, 3] return 2.

ac代码

class Solution {
public:
int missingNumber(vector<int>& nums) {
int len = nums.size();

int le = 0; // 0到le-1已经有
int ri = len - 1; // le到ri想要有

while (le <= ri){
if (nums[le] == le){
le++;
}
else if (nums[le] < le || nums[le] > ri || nums[nums[le]] == nums[le]){
nums[le] = nums[ri]; //  ri要减小
ri--;
}
else{
int tmp = nums[nums[le]];
nums[nums[le]] = nums[le];
nums[le] = tmp;
}
}// end while

return le;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: