Leetcode:260只出現一次的數字III
給定一個整數陣列 nums
,其中恰好有兩個元素只出現一次,其餘所有元素均出現兩次。 找出只出現一次的那兩個元素。
示例 :
輸入:[1,2,1,3,2,5]
輸出:[3,5]
注意:
- 結果輸出的順序並不重要,對於上面的例子,
[5, 3]
也是正確答案。 - 你的演算法應該具有線性時間複雜度。你能否僅使用常數空間複雜度來實現?
解題思路;
位運算。
1. 將所有數字取異或之後res = a^b,其中a,b就是那兩個不一樣的元素。
2. res&-res就是res最右端是1個地方。這個位上,a,b其中一個必然為0,另一個必然為1。
3. 那麼就可以將之前成對出現的數字按照這個位上是0或者1分成兩個組,分別求兩組元素的異或,即可得到a,b的值。
class Solution { public: vector<int> singleNumber(vector<int>& nums) { int a=0,b=0,c=0; for(auto& x:nums) a^=x; a=a&-a; for(auto& x:nums) if(x&a) b^=x; else c^=x; return {b,c}; } }; |
相關推薦
Leetcode-260. 只出現一次的數字 III
給定一個整數陣列 nums,其中恰好有兩個元素只出現一次,其餘所有元素均出現兩次。 找出只出現一次的那兩個元素。 示例 : 輸入: [1,2,1,3,2,5] 輸出: [3,5] 注意: 結
Leetcode:260只出現一次的數字III
給定一個整數陣列 nums,其中恰好有兩個元素只出現一次,其餘所有元素均出現兩次。 找出只出現一次的那兩個元素。 示例 : 輸入: [1,2,1,3,2,5] 輸出: [3,5] 注意: 結果輸出的順序並不重要,對於上面的例子, [5, 3] 也是正確答案。 你的演
260. 只出現一次的數字 III(建立一個字典+一種我不會的思路)
參考:https://blog.csdn.net/wem603947175/article/details/82117675 這道題很簡單,用字典的方法做的,但是我的字典實現超過時間限制。對比如下: (學習(*^▽^*)) # 通過,優於我的字典存取 # class Solution(
Leetcode-探索 | 只出現一次的數字
求和 時空 技巧 做的 計算 輸出 奇技淫巧 leetcode bsp 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2
LeetCode--136--只出現一次的數字
實現 額外 比較 pre 整數 etc -- tco tro 問題描述: 給定一個非空整數數組,除了某個元素只出現一次以外,其余每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的算法應該具有線性時間復雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [
leetcode 136. 只出現一次的數字 C語言版
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1
Leetcode 136 只出現一次的數字 && Leecode 389 找不同
【136】 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入:
leetcode 136. 只出現一次的數字(python)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1
leetcode 136. 只出現一次的數字(Single Number)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,
Leetcode-136. 只出現一次的數字(python3)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸
LeetCode陣列-只出現一次的數字
只出現一次的數字 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸
【leetcode】只出現一次的數字
只出現一次的數字 一、要求 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。
LeetCode-136.只出現一次的數字(相關話題:位運算)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,1,2,1,2] 輸出
leetcode 137. 只出現一次的數字 II
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 這種純數字計算的問題,如果我們只用加減乘除就能做出來,那leetcode就
LeetCode: 136. 只出現一次的數字(C++)
題目: 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4,
LeetCode 136. 只出現一次的數字 Python
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。說明:你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎?示例 1:輸入: [2,2,1] 輸出: 1 示例 2:輸入: [4,1,2,1,2] 輸出: 4
Leetcode-137. 只出現一次的數字 II (python3實現)
給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現了三次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1:
leetcode:只出現一次的數字
給定一個整數陣列,除了某個元素外其餘元素均出現兩次。請找出這個只出現一次的元素。 備註: 你的演算法應該是一個線性時間複雜度。 你可以不用額外空間來實現它嗎? 初看這個題目,也許大部分同學的思路是儲存各個元素出現的次數,然後找出出現次數為1的元
Leetcode 136.只出現一次的數字
只出現一次的數字 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2: 輸入: [4
Leetcode 136. 只出現一次的數字(Python3)
136. 只出現一次的數字 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。 說明: 你的演算法應該具有線性時間複雜度。 你可以不使用額外空間來實現嗎? 示例 1: 輸入: [2,2,1] 輸出: 1 示例 2