一个数组中只有一个数字出现一次,其余别的数字都出现两次,如何求出这个出现一次的数字?例如数组a[11]={1,2,2,3,3,4,4,5,5,6,6},则出现一次的是1,通过异或算法即可求出.
代码如下:
int onediffent(int a[],int n)
{
int temp=0;
for(int i=0;i<n;i++)
temp=temp^a[i];
printf("...
分类:
编程语言 时间:
2015-05-17 23:38:01
阅读次数:
155
题目:一个整型数组里除了两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度为O(1)。分析:由于时间复杂度和空间复杂度的限制,不可能用多次遍历数组方法和辅助数组的方法。因此问题比较难以下手。现在考虑如果只有..
分类:
编程语言 时间:
2014-12-09 12:26:22
阅读次数:
175
按着书里面讲述的方法,根据某一位来将整个数组拆分成两个部分,取每一部分中出现一次的数。书中的处理略显复杂,这里简化下分类的方法。
def once(array):
reOR = 0
for x in array:
reOR ^= x
bit1 = firstBit1(reOR)
first = 0
second = 0
for x in array:
if x & ...
分类:
其他好文 时间:
2014-07-03 13:50:52
阅读次数:
181