268. Missing Number
2017-10-18 22:44
211 查看
Given an array containing n distinct numbers taken from
For example,
Given nums =
Note:
Your algorithm should run in linear runtime complexity. Could you implement it using only constant extra space complexity?
思路一:
求和
思路二:
异或运算
The basic idea is to use XOR operation. We all know that a^b^b =a, which means two xor operations with the same number will eliminate the number and reveal the original number.
In this solution, I apply XOR operation to both the index and value of the array. In a complete array with no missing numbers, the index and value should be perfectly corresponding( nums[index] = index), so in a missing array, what left finally is the missing
number.
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?
思路一:
求和
思路二:
异或运算
The basic idea is to use XOR operation. We all know that a^b^b =a, which means two xor operations with the same number will eliminate the number and reveal the original number.
In this solution, I apply XOR operation to both the index and value of the array. In a complete array with no missing numbers, the index and value should be perfectly corresponding( nums[index] = index), so in a missing array, what left finally is the missing
number.
public int missingNumber(int[] nums) { int xor = 0, i = 0; for (i = 0; i < nums.length; i++) { xor = xor ^ i ^ nums[i]; } return xor ^ i; }
相关文章推荐
- 268. Missing Number
- Leetcode ☞ 268. Missing Number
- 268. Missing Number多种解法
- [LEETCODE] 268. Missing Number
- Leetcode 268. Missing Number(Easy)
- 2018.03.15 leetcode 打卡 #268. Missing Number
- leetcode 268. Missing Number
- 268. Missing Number
- 268. Missing Number
- 268. Missing Number
- [LeetCode]268. Missing Number
- 【leetcode】268. Missing Number
- 268. Missing Number
- 268. Missing Number
- 268. Missing Number
- leetcode - 268. Missing Number
- 2018.03.15 leetcode 打卡 #268. Missing Number
- Leetcode 268. Missing Number
- 268. Missing Number
- 268. Missing Number