尋找 單身數

2021-09-20 04:41:26 字數 606 閱讀 3025

乙個有n個數的陣列裡, 每個數字都出現兩次, 現在取出乙個數, 根據剩下的數字, 猜測取出的數的值(要求時間複雜度為n, 空間複雜度為1)

解題圖示

**實現:

class solution:

def singlenumber(self, nums):

""":type nums: list[int]

:rtype: int

"""result = nums[0]

for num in nums[1:]:

result ^= num

return result

def main():

so = solution()

result = so.singlenumber([10, 20, 50, 80, 10, 50, 80, 5, 20])

print("單身數為:", result)

if __name__ == '__main__':

main()

尋找單身狗數

方法一 異或求單身狗 原理 相同兩數異或為0 把所有數全部異或。異或的結果找1出現的位置的,然後將所有這個位置為1的數相異或,就是第乙個 單身狗 其他的相異或則是第二個。void finddog int arr,int n,int num for i 0 i 32 i for i 0 i n i v...

尋找單身狗

給出2 n 1 個的數字,除其中乙個數字之外其他每個數字均出現兩次,找到這個數字 對於該問題,我們直觀得想到,暴力遍歷整個陣列,逐一得排查陣列元素,直到找到那個單獨的數字。這個方法也很容易實現,但是其時間複雜度為o n 2 其效率並不高,不宜採用。另一種方法也很容易想到,我們可以先對整個陣列排序,然...

1040尋找單身狗

時間限制 1 sec 記憶體限制 128 mb 提交 159 解決 51 統計杜陵韋固,元和二年旅次宋城遇一老人倚布囊,坐於階上,向月撿書。固問所尋何書,答曰 天下之婚牘耳。又問囊中何物,答曰 赤繩子耳。以系夫妻之足,及其生,則潛用相繫,雖讎敵之家,貴賤懸隔,天涯從宦,吳楚異鄉,此繩一系,終不可逭。...