268. Missing Number(leetcode O(n))

来源:互联网 发布:数据分析培训课程 会计 编辑:程序博客网 时间:2024/06/02 06:18

题目地址

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;    }};
0 0
原创粉丝点击