136. Single Number
Description
Given a non-empty array of integers nums
, every element appears twice except for one. Find that single one.
You must implement a solution with a linear runtime complexity and use only constant extra space.
Example 1:
Input: nums = [2,2,1]
Output: 1
Example 2:
Input: nums = [4,1,2,1,2]
Output: 4
Example 3:
Input: nums = [1]
Output: 1
Constraints:
1 <= nums.length <= 3 * 104
-3 * 104 <= nums[i] <= 3 * 104
- Each element in the array appears twice except for one element which appears only once.
Solutions
Solution 1: Bitwise Operation
The XOR operation has the following properties:
- Any number XOR 0 is still the original number, i.e., \(x \oplus 0 = x\);
- Any number XOR itself is 0, i.e., \(x \oplus x = 0\);
Performing XOR operation on all elements in the array will result in the number that only appears once.
The time complexity is \(O(n)\), where \(n\) is the length of the array. The space complexity is \(O(1)\).
1 2 3 |
|
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 |
|
1 2 3 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 |
|
1 2 3 4 5 6 7 |
|
1 2 3 4 5 |
|
Solution 2
1 2 3 4 5 |
|