2022-07-22 15:36:57 +08:00
|
|
|
|
# Leetcode Single-Number
|
|
|
|
|
|
|
|
|
|
#### 2022-07-22 15:31
|
|
|
|
|
|
|
|
|
|
> ##### Algorithms:
|
|
|
|
|
> #algorithm #bit_manipulation
|
|
|
|
|
> ##### Data structures:
|
|
|
|
|
> #DS #bitset
|
|
|
|
|
> ##### Difficulty:
|
|
|
|
|
> #coding_problem #difficulty-easy
|
|
|
|
|
> ##### Additional tags:
|
|
|
|
|
> #leetcode
|
|
|
|
|
> ##### Revisions:
|
|
|
|
|
> N/A
|
|
|
|
|
|
|
|
|
|
##### Related topics:
|
|
|
|
|
```expander
|
|
|
|
|
tag:#bit_manipulation
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##### Links:
|
|
|
|
|
- [Link to problem](https://leetcode.com/problems/single-number/)
|
2022-07-22 15:46:45 +08:00
|
|
|
|
- [Learn about XOR]()
|
2022-07-22 15:36:57 +08:00
|
|
|
|
___
|
|
|
|
|
### Problem
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
#### Examples
|
|
|
|
|
|
2022-07-22 15:46:45 +08:00
|
|
|
|
**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
|
|
|
|
|
|
2022-07-22 15:36:57 +08:00
|
|
|
|
#### Constraints
|
|
|
|
|
|
2022-07-22 15:46:45 +08:00
|
|
|
|
- `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.
|
|
|
|
|
|
2022-07-22 15:36:57 +08:00
|
|
|
|
### Thoughts
|
|
|
|
|
|
|
|
|
|
> [!summary]
|
2022-07-22 15:46:45 +08:00
|
|
|
|
> This is a #bit_manipulation problem utilizing the XOR operator
|
|
|
|
|
|
|
|
|
|
|
2022-07-22 15:36:57 +08:00
|
|
|
|
|
|
|
|
|
### Solution
|