标签:style blog io color ar sp for strong 数据
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?
怎么解决这个问题?我们要利用计算机内部用二进制数来储存数据这一特性。试想一个数本身和自己异或的结果必定是0.因为数组中除了一个数之外,其他的数都出现了两次,只要把数组中所有的数都异或一遍,最后剩余的结果必定是那个特别的数字。刚开始的时候应该选取0和数组中第一个数以后,因为0的二进制表示是全零,不会对最后求得的结果有影响。据此,就能很容易地得出正确的代码:
1 class Solution { 2 public: 3 int singleNumber(int A[], int n) { 4 int i; 5 int x=0; 6 for(i=0;i<n;i++) 7 x^=A[i]; 8 return x; 9 } 10 };
标签:style blog io color ar sp for strong 数据
原文地址:http://www.cnblogs.com/zhoudayang/p/4094856.html