268. 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.

Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?

Credits:

 

一串连续的数,找到缺的那个

 

C++(22ms):

 1 class Solution {
 2 public:
 3     int missingNumber(vector<int>& nums) {
 4         int len = nums.size() ;
 5         int sum = (0+len)*(len+1)/2 ;
 6         for(int i = 0 ; i < len ; i++){
 7             sum -= nums[i] ;
 8         }
 9         return sum ;
10     }
11 };

 

C++(26ms):

 1 class Solution {
 2 public:
 3     int missingNumber(vector<int>& nums) {
 4         int len = nums.size() ;
 5         int res = len ;
 6         for (int i = 0 ; i < len ; i++){
 7             res ^= i ^ nums[i] ;
 8         }
 9         return res ;
10     }
11 };

 

posted @ 2017-09-26 09:21  __Meng  阅读(151)  评论(0编辑  收藏  举报