求陣列中唯一重複的數字:
陣列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...