求陣列中唯一重複的數字

2021-08-19 16:22:23 字數 633 閱讀 9736

求陣列中唯一重複的數字:

陣列a[n],1至n-1存在a中,有乙個是重複的,找出這個數字。

第一種方法:

#include

int main(void)

; int i,sum=0,x;

for(i=0;i<11;i++)

x=sum-( (1+10)*10 ) /2;//陣列總和 減去1到10得和多出來的就是重複的

printf("%d\n",x);

}

第二種

用異或:異或運算滿足交換律結合律,

設重複數字為a,其餘n-2個數字疑惑結果為b,n個數字異或結果為:a^a^b,

1~n個數字異或結果為;a^b.

x^x=0.

0^x=1

所以;(a^b)^(a^a^b)=a^b^b=a

int main(void)

; int i,x1=0,x2=0;

for(i=0;i<11;i++)//陣列所有元素 異或

for(i=1;i<11;i++)//陣列所有不重複的元素 異或

printf("%d\n",x1^x2);

}

找出陣列中唯一重複的數

題目 陣列a n 1至n 1這n 1個數存放在a n 中,其中某個數重複一次。寫乙個函式,找出被重複的數字。方法一 異或法。陣列a n 中的n個數異或結果與1至n 1異或的結果再做異或,得到的值即為所求。include include include include void xor finddup...

找陣列中唯一重複的元素 hash

空間換時間法,雜湊表 key的位址loc key f key f 為雜湊函式 deffinddup array if none array return 1 lens len array hashtable dict i 0while ihashtable i 0 初始化初始化雜湊表 i 1 j 0...

Python 如何找出陣列中唯一重複的元素

1.hash法 字典法 空間換時間 def finddup array if array none return 1 lens len array hashtable dict i 0 while i時間和空間複雜度都是o n 2.累加求和法 def finddup array if array n...