您的位置:首页 > 其它

[leetcode] Single Number

2014-07-07 00:32 274 查看
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?

https://oj.leetcode.com/problems/single-number/

思路:所有元素异或之后所留下的即是。

public class Solution {
public int singleNumber(int[] A) {
if (A == null || A.length == 0)
return 0;
if (A.length == 1)
return A[0];

int n = A.length;
int result = A[0];
for (int i = 1; i < n; i++)
result = result ^ A[i];

return result;
}

public static void main(String[] args) {
System.out.println(new Solution().singleNumber(new int[] { 1, 1, 2, 3,
3, 4, 4, 0, 0 }));
}
}


第二遍记录:可以改的简洁点。

public class Solution {
public int singleNumber(int[] A) {
int res=0;
for(int i=0;i<A.length;i++){
res ^=A[i];
}
return res;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: