Leetcode137 只出現一次的數字

2021-10-02 03:50:19 字數 719 閱讀 3734

題目描述

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

說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?

示例 1:

輸入: [2,2,3,2]

輸出: 3

示例 2:

輸入: [0,1,0,1,0,1,99]

輸出: 99

思路:

對數字中數字的每乙個位出現的次數進行統計,如果能被3整除說明這一位上只出現一次的數字是0;

如果不能被3整除,說明只出現一次的數字在這一位上是1。

時間複雜度是o(n),空間複雜度是o(1),雖然開了32位的陣列,但是空間複雜度仍然是o(1)呀,老是覺得開了陣列空間複雜度就是o(n)了,這是不對的,要看開的是否是常數長度的陣列。

還有其他做法:開闢雜湊表,空間複雜度是o(n),時間複雜度是o(n);對陣列進行排序,時間複雜度是o(nlogn)

class

solution

}int res =0;

for(

int i =

0;i <

32;i++

)return res;

}}

leetcode還有相關題

只出現一次的數字|

只出現一次的數字|||

leetcode 137 只出現一次的數字 II

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?這種純數字計算的問題,如果我們只用加減乘除就能做出來,那leetcode就太low了,這種問題,應該深入到位級別運算。思考,將...

leetcode137 只出現一次的數字詳解

原題連線 給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2,2,3,2 輸出 3 示例 2 輸入 0,1,0,1,0,1,99 輸出 99 3 函式f實現的...

leetcode137 只出現一次的數字2

給定乙個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。說明 你的演算法應該具有線性時間複雜度。你可以不使用額外空間來實現嗎?示例 1 輸入 2 2,3 2 輸出 3示例 2 輸入 0 1,0 1,0 1,99 輸出 99以例項1進行講解,2,2,3,...