從乙個陣列中尋找出現奇數次的數字

2022-08-27 18:24:07 字數 819 閱讀 5800

假設給定了陣列nums為[0,1,2,3,4,5,6,7,8,9,10,10,9,8,7,6,5,4,1,2,3,3,0]

其中3出現了3次

而其他數字都出現了兩次

則我們應該得到結果為3

第一種方式:使用hash

1

/**2

* 使用hash3*

*/4public

static

int singlenumber_1(int

nums) else

15* *

*/16

if(map.get(num) != null

) else21}

22int result = -1;

23for

(integer key : map.keyset())

2728}29

return

result;

30 }

view code

第二種方式:使用^

1

/**2

* 異或

3* a^b^c^b^a = (a^a)(b^b)^c = 0^c = c4*

*/5public

static

int singlenumber_2(int

nums) 13}

14return

ans;

15 }

view code

在其它數都出現偶數次的陣列中尋找出現奇數次的數

題目 給定乙個整形陣列,其中只有乙個數出現了奇數中,其它的數都出現了偶數次,求只出現了奇數次的這個數.高階 有兩個數出現了奇數次,其它數都出現了偶數次,求這兩個數.完整 package chapter 7 bitoperation public class problem 05 eventimeso...

c 筆試,求陣列中出現奇數次的2個數

題 有n 2個數,n個數出現了偶數次,2個數出現了奇數次 這兩個數不相等 問用o 1 的空間複雜度,找出這兩個數,不需要知道具體位置,只需要知道這兩個值。求解 如果只有乙個數出現過奇數次,這個就比較好求解了,直接將陣列中的元素進行異或,異或的結果 就是只出現過奇數次的那個數。但是題目中有2個數出現了...

找出乙個陣列中出現次數最大的數

描敘 一大堆資料裡面,數字與數字之間用空格隔開,找出出現次數最多的乙個數字的演算法 includevoid findmosttimesdigit int src int srclen if tempcount maxcount else if tempcount maxcount printf 出現...