您的位置:首页 > 其它

leetcode268: Missing Number

2016-11-20 15:22 190 查看
要求:

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
.

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

注意:将数组放在新数组中,再将数字1-n放入新数组中。将新数组中所有元素进行异或,结果就是那个没有重复的数字,也就是Missing Number

例如:

int[] array={0,1,2,4,5}在新数组中先放入0-5,再放入array中所有元素
int[] newarray={0,1,2,3,4,5,0,1,2,4,5}只有3没有重复两次。
进行异或后,返回单个元素3

public int missingNumber(int[] nums) {
int[] ar = new int[2 * nums.length + 1];
for (int i = 0; i <= nums.length; i++)
ar[i] = i;
for (int i = 0; i < nums.length; i++)
ar[i + nums.length + 1] = nums[i];
int result = ar[0];
for (int i = 1; i < ar.length; i++)
result = result ^ ar[i];
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: