乙個有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 統計杜陵韋固,元和二年旅次宋城遇一老人倚布囊,坐於階上,向月撿書。固問所尋何書,答曰 天下之婚牘耳。又問囊中何物,答曰 赤繩子耳。以系夫妻之足,及其生,則潛用相繫,雖讎敵之家,貴賤懸隔,天涯從宦,吳楚異鄉,此繩一系,終不可逭。...