[LeetCode]Single Number
2014-04-01 15:09
239 查看
Single Number
Given an 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?
1. 不考虑多余内存空间,用HashMap解决很常规,时间复杂度为O(n)。
public class Solution { public int singleNumber(int[] A) { HashMap<Integer,Integer> map=new HashMap<Integer,Integer>(); int key,val; val=0; for(int i=0;i<A.length;i++){ if(map.containsKey(A[i])){ map.remove(A[i]); } else{ map.put(A[i],A[i]); } } Iterator iter=map.keySet().iterator(); while(iter.hasNext()){ val=map.get(iter.next()); } return val; } }
2. note里又说do it without using extra memory,这就难办了。想了很久没找到诀窍,最后求助万能互联网。
异或运算:^
输入 | 输入 | 结果 |
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 | 4000
public class Solution { public int singleNumber(int[] A) { for(int i=1;i<A.length;i++){ A[0]=A[0]^A[i]; } return A[0]; } }
相关文章推荐
- LeetCode 136 Single Number
- Leetcode-136:Single Number
- [LeetCode] Single Number
- [leetcode]Single Number
- leetcode 136. Single Number
- 【leetcode】【136】Single Number
- 【leetcode77】Single Number
- 【LeetCode-面试算法经典-Java实现】【136-Single Number(仅仅出现一次的数字)】
- Leetcode: Single Number
- leetcode - Single Number
- [Leetcode] Single Number
- [LeetCode-136]Single Number(java)
- [LeetCode]Single Number
- leetcode之Single Number
- 【C++】【LeetCode】136. Single Number
- Leetcode 136. Single Number
- LeetCode -- Single Number 代码分析
- leetcode编程题-Single Number 1
- LeetCode: 136. Single Number
- LeetCode学习(4)Single Number