首页 > 学院 > 开发设计 > 正文

268. Missing Number

2019-11-08 03:21:00
字体:
来源:转载
供稿:网友

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?

方法一、xor运算的方法

int missingNumber(vector<int>& nums) { int res = nums.size(); for(int i = 0; i < nums.size(); i++){ res ^= i; res ^= nums[i]; } return res; }

方法二、减的方法

int missingNumber(vector<int>& nums) { int res = nums.size(); int sum = (res + 1)*res /2; for(int i = 0; i < nums.size(); i++){ sum -= nums[i]; } return sum; }

方法三、二分查找

int missingNumber(vector<int>& nums) { sort(nums.begin(),nums.end()); int left = 0; int right = nums.size(); int mid = (left + right) / 2; while(left < right){ mid = (left + right) / 2; if(nums[mid] > mid) right = mid; else left = mid + 1; } return left; }
上一篇:线程池技术

下一篇:PAT乙级1000-1009

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表