您的位置:首页 > 其它

LeetCode - Single number- Jan 31, 2015

2015-02-01 03:59 253 查看
/*
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?

*/

public class SingleNumber {

//reference: http://www.programcreek.com/2012/12/leetcode-solution-of-single-number-in-java/ /*
Thoughts
The key to solve this problem is bit manipulation. XOR will return 1 only on two different bits.
So if two numbers are the same, XOR will return 0. Finally only one number left.
*/

//reference: http://rleetcode.blogspot.com/2014/01/blog-post_1.html public static int singleNumber(int[] A) {
if(A == null || A.length==0)
return -1; // throw exception
int result = A[0];
for(int i =1; i< A.length; i++) {
result ^= A[i];
}
return result;
}

public static void main(String args[]) {
//int A[] = { 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 6};
// int A[] = {1};
//int A[] = {2 , 2, 1};
int A[] =	{1,3,1,-1,3};
int result = singleNumber(A);
System.out.println("result=" + result);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: