在其他數都出現偶數次的陣列中找到出現奇數次的數

2021-10-01 17:27:17 字數 844 閱讀 3613

題目

給定乙個陣列arr,其中只有乙個數出現了奇數次,其他數都出現了偶數次,列印這個數。

高階問題

有兩個數出現了奇數次,其他數出現了偶數次,列印這兩個數。

要求時間複雜度o(n),空間複雜度(1)。 

基本思路

整數n與0異或的結果是n,整數n與整數n異或的結果是0;同時,異或滿**換律和結合律。 

知道上述的內容,解決這道題就很容易了。如果n出現了偶數次,那麼,所有的n異或完後一定為0;如果n出現了奇數次,那麼所有的n異或完後一定為n。即使陣列中同乙個數不是連著出現的,根據異或的交換律和結合律,我們知道,陣列中順序的改變不會影響結果。所以,這道題的步驟就是:先申請乙個整型變數記為e,初始化為0,讓e去和陣列中每乙個元素進行異或,最終的e就是答案

public

void

printoddtimesnum1

(int

arr)

system.out.

println

(eo)

;}

高階問題

public

static

void

printoddtimesnum2

(int

arr)

int rightone = eo &

(~eo +1)

;for

(int cur : arr)}

system.out.

println

(eohasone +

" "+

(eo ^ eohasone)

)}

題目

在其他數都出現偶數次的陣列中找到出現奇數次的數

題目 給定乙個陣列arr,其中只有乙個數出現了奇數次,其他數都出現了偶數次,列印這個數。高階問題 有兩個數出現了奇數次,其他數出現了偶數次,列印這兩個數。要求時間複雜度o n 空間複雜度 1 基本思路 整數n與0異或的結果是n,整數n與整數n異或的結果是0 同時,異或滿 換律和結合律。知道上述的內容...

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

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

在其他數都出現k次的陣列中找到僅出現過一次的數字

廢話不多說,直接上題目 給定乙個陣列,在這個陣列中有呀乙個數隻出現了一次,其他的數出現次數都是k k 1 請返回這個數字。首先,我們考慮一下這個問題。對於乙個k進製的數字。如果有k個k進製的數字相加的話。會是乙個什麼樣的結果!下圖是7個7進製數字無進製相加的結果。這裡我們發現如果k個k進製的數字無進...