Given an array containing n distinct numbers taken from 0, 1, 2, ..., n
, find the one and that's missing from the array.
For example,
Given nums = [0, 1, 3]
return 2
.
Note:
Your algorithm should run in linear runtime complexity. Could implement it using only constant extra space complexity?
Credits:
Special thanks to @jianchao. Li.fighter for adding the problem and creating all test cases.
First time AC code:
Class Solution{public: int missingnumber (vector<int>& nums) { int sum=nums.size (); if (sum==0) return 0; int temp; for (int i=0; i<sum; ++i) { if (I==nums[i]) continue; else { while (nums[i]!=i) { if (nums[i]==sum) is break; else { temp=nums[nums[i]]; Nums[nums[i]]=nums[i]; Nums[i]=temp ; }}}} for (int i=0;i<sum;++i) if (nums[i]!=i) return i; return sum; }};
The second order is good ....
Class Solution{public: int missingnumber (vector<int>& nums) { int sum=nums.size (); if (sum==0) return 0; Sort (Nums.begin (), Nums.end ()); for (int i=0;i<sum;++i) if (nums[i]!=i) return i; return sum; }};
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
[Leetcode 268] Missing number