朝花夕拾 bit操作之拯救單身狗

2021-10-08 07:16:42 字數 580 閱讀 4657

該部落格**於一到litcode題目

題目詳情

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。

作為乙隻單身狗,看到這種題目腦海中浮現的就是在一群情侶中有乙隻被包圍的可憐的單身狗,它深受毒害,被迫吃**吃到吐。我們今天的任務就是拯救這乙隻單身狗,消滅其中的情侶們!

如何消滅他們呢?

我們利用bit運算中的異或運算的乙個特性來實現它。

在二進位制運算中異或我們用^表示

則異或的一條性質為

a ^ a = 0

a ^ 0 = a

加上異或運算的結合律即

a ^ b ^ c = a ^ (b ^ c)

這個特性完美契合了我們的需求,相同數字的情侶們都會被消除為0,只有乙個單身狗被留下來。

原理我們都懂了,下面我們來上**

int

singlenumber

(vector<

int>

& nums)

return result;

}

朝花夕拾,初始記

經歷了乙個暑假,我也終於進入校園。19年考研對於我來說,無疑是最大的失敗,在整個過程中我都是在無力的掙扎,好在得學校老師的幫助下,讓我未來三年有了歸宿,但這三年對於我來說無疑是壓力巨大的,無論是學習上 生活上和愛情上。不管怎樣,雖然壓力很大,但生活還是要繼續,我還是挺樂觀的,會盡自己最大的努力來獲取...

朝花夕拾 C 再學習

通過變數名 通過記憶體位址 取位址運算子 用來獲得變數的位址 void getaddress char chararr size int intptr intarr char charptr chararr cout intager array output intptr charptr 輸出結果如...

朝花夕拾 C語言 空白與注釋

從嚴格意義上來說,c語言並沒有如python那樣嚴格的縮排限制,所以你可以很自由的編寫你的 但是,那樣會導致你的 可讀性非常差,當你的程式出現了bug,想要除錯的時候,你會發現自己都不知道自己寫的是什麼了。因此乙個良好的編碼習慣顯得尤為重要,不為了別人,就為了我們自己能夠很好的debug,我們也應該...