Given a non-empty array of integers nums
, every element appears twice except for one. Find that single one.
Follow up: Could you implement a solution with a linear runtime complexity and without using extra memory?
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
struct Solution;
impl Solution {
fn single_number(nums: Vec<i32>) -> i32 {
nums.iter().fold(0i32, |res, val| res ^ val)
}
}
#[test]
fn test() {
assert_eq!(Solution::single_number(vec![2, 2, 1]), 1);
assert_eq!(Solution::single_number(vec![4, 1, 2, 1, 2]), 4);
}