日常刷題 找出單獨數字

2021-10-02 13:29:16 字數 436 閱讀 4312

題解:空間複雜度比較小的演算法是用異或演算法比較出不同的數字,原理如下:

a^a=0

a^0=0

異或演算法滿**換律和結合律:a ^ b ^ c = a ^ c ^ b = a ^ (b ^ c)

用示例2的陣列解釋:

4 ^ 1 ^ 2 ^ 1 ^ 2

= 1 ^ 1 ^ 2 ^ 2 ^ 4

= 0 ^ 0 ^ 4

= 4陣列中任何相同的數字,在異或演算法後都等於0, 最後就能return出只出現一次的那個數字。

**:

class

solution

return result;

}}

題目**於力扣

找出單獨出現的數字

給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。一開始是很普通的想法,從第乙個數開始,從前往後遍歷。但兩個數相同時,將兩數賦乙個不可能出現的值。再重新遍歷陣列,找出沒有被賦予不可能出現值的值。private static s...

小公尺oj 找出單獨的數字

給出n個數字。其中僅有乙個數字出現過一次,其他數字均出現過兩次,找出這個出現且只出現過一次的數字。要求時間和空間複雜度最小。輸入多個數字,每個數字以空格分開,回車結束 輸出內容為只出現過唯一一次的數字 10 10 11 12 12 11 16 16思路 常見的思路遍歷所有資料,用map 字典去記錄每...

日常刷題 (1)

牛客刷題 1.有關類的說法不正確的是 d a.類是一種使用者自定義的資料型別 b類中的成員函式可以訪問類中的私有資料 c在類中,如果不作特別說明,所有的資料均為私有型別 d在類中,如果不作特別說明,所有的成員函式均為公有型別 解析 在c 中,類預設的方式時private,不管是繼承方式還是成員。2....