1樓:
可以用快速劃分來做。
如果左邊的元素數NL % 4 == 2,則繼續在左邊找答案。
如果右邊的元素數NR % 4 == 2, 則在右邊找答案。
時間複雜度O(N),空間複雜度O(1)。不需要考慮正負數。
2樓:
給 @Vichare Wang 的答案做個註解。
其方法可概括為:
將陣列 P[i] 中每個整數的對應bit做 i 上的累加,於是就得到每個bit上 1 出現的次數,
再將結果 mod 4,會有 00,01,10,11,4種餘數的結果,為每一種分配狀態。
根據題目約束,
每個bit上1要麼出現4的整數倍次,最終狀態餘數為 00 ,(可推斷出現兩次的數在該bit上=0)
要麼還多出2次,最終狀態餘數為 10,(表示出現兩次的數在該bit上=1)
用AB來表示這個狀態,計算過程是不斷的對B做二進位制加法(異或),進製到A:
3樓:Parabola
讓我們簡化一下這個問題:
有 2k+1 個整數,除乙個以外均恰好出現兩次。
經典做法是,將此 2k+1 個整數全部異或(xor)起來。由於 xor 的性質:
A xor A = 0, A xor B = B xor A, A xor 0 = A,易證明最終結果就是只出現一次的那個數。
回到原問題,我們需要構造一種「四數相消」的異或運算。
異或的本質其實是,對於每乙個二進位制位進行模 2 加法運算。
所以此問題只需要改模 2 為模 4 即可(最後將結果除以 2)。
例:[3, 5, 2, 5, 3, 2, 5, 5, 3, 3]二進位制位:
011101
010101
011010
101101
011011
模 4 加法:
020每位除 2,化為十進位制:
010 => 2
時間複雜度 O(n * 位數),額外空間 O(1)。
用4K電視玩PS4和2K電視玩PS4PRO哪個畫質好?
Cried Lee 首先PS4 Pro的不支援1440P輸出,也就是2K,會降級為1080P,這個跟Xbox one x不一樣。其次PS4 Pro在支援的遊戲中,很大一部分是可以選擇解析度優先,幀數優先還是畫質優先,如怪物獵人世界。根據各個遊戲自己的情況可能效果不太一樣,解析度優先就是4K輸出,不過...
3080顯示卡選擇2k顯示器還是4k?
lgzzz 同3080.4k的畫質遠不是2k能比。我個人是兩台顯示器 1080p 280hz 打競技網遊,4k 60 玩單機。只想一台顯示器,建議 3840 1440 的帶魚,略高於2k的畫素,fps遊戲清晰度等於4k 4k切掉一部分上下畫面 非要二選一。那就是4k,和流暢相比,畫質才是最重要的,這...
31 5寸顯示器買2K還是4K?
我目前在用27寸2K144,今年618想換32寸4K 建議如下 無特別需求,2000元出頭品質較高的27寸 2K 60hz IPS夠用。2.4K配32 34很好 如果是21 9的超長顯示器,請注意桌子是不是放得下。3.要不要144 玩電競遊戲 如lol cs 吃雞等 144的提公升肉眼可見,除此以外...