【LeetCode】136. Single Number
Difficulty:easy
More:【目录】LeetCode Java实现
Description
https://leetcode.com/problems/single-number/
Given a non-empty array of integers, every element appears twice except for one. Find that single one.
Note:
Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory?
Example 1:
Input: [2,2,1] Output: 1
Example 2:
Input: [4,1,2,1,2] Output: 4
Intuition
use XOR ( ^ )
Solution
public int singleNumber(int[] nums) { int ans=0; for(int n : nums){ ans=ans^n; } return ans; }
Complexity
Time complexity : O(n)
Space complexity : O(1)
What I've learned
1. when meeting problems about duplicate, considering using XOR.
More:【目录】LeetCode Java实现