LeetCode 137 [Single Number II]
原題
給出3*n + 1 個的數字,除其中一個數字之外其他每個數字均出現三次,找到這個數字。
樣例
給出** [1,1,2,3,3,3,2,2,4,1]** ,返回 4
解題思路
- 方法一:三進位制不進位加法,比如02 + 01 = 00 (2+1=3做加法不進位)。所以同一個數,比如7的三進製表示為21,21+21+21 = 00 即十進位制下的0。最終程式碼即統計每一位上1,對3取模
- 方法二:分別統計,記錄出現一次,兩次,三次的數
完整程式碼
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
ones, twos, threes = 0, 0, 0
for item in A:
twos |= ones & item
ones ^= item
threes = ones & twos
ones ^= threes
twos ^= threes
return ones
相關文章
- Leetcode 137. Single Number IILeetCode
- LeetCode137:Single Number IILeetCode
- leetcode136-137:single numberLeetCode
- Leetcode- Single Number IILeetCode
- Single Number II leetcode javaLeetCodeJava
- Leetcode Single NumberLeetCode
- Leetcode-Single NumberLeetCode
- Single Number leetcode javaLeetCodeJava
- LeetCode136:Single NumberLeetCode
- LeetCode-Strobogrammatic Number IILeetCode
- LeetCode-Number of Islands IILeetCode
- leetcode260-single number iiiLeetCode
- [LeetCode] 305. Number of Islands IILeetCode
- LeetCode (39) Ugly Number I II (醜數)LeetCode
- Leetcode 之 PHP 解析 (260. Single Number III)LeetCodePHP
- Leetcode 137:只出現一次的數字 II(最詳細的解法!!!)LeetCode
- LintCode-Majority Number II
- Leetcode Number of islandsLeetCode
- LeetCode:Largest NumberLeetCode
- [LeetCode] Third Maximum NumberLeetCode
- [LeetCode] Find the Duplicate NumberLeetCode
- LeetCode-Strobogrammatic NumberLeetCode
- LeetCode-Largest NumberLeetCode
- LeetCode-Number of IslandsLeetCode
- Leetcode Valid NumberLeetCode
- leetcode Palindrome NumberLeetCode
- [LeetCode] Jump Game IILeetCodeGAM
- Leetcode jump Game IILeetCodeGAM
- Leetcode Spiral Matrix IILeetCode
- Leetcode Path Sum IILeetCode
- Leetcode-Subsets IILeetCode
- Leetcode-Permutations IILeetCode
- Leetcode Unique Paths IILeetCode
- Permutations II leetcode javaLeetCodeJava
- Subset II leetcode javaLeetCodeJava
- Leetcode 447 Number of BoomerangsLeetCodeOOM
- Leetcode 9 Palindrome NumberLeetCode
- LeetCode-Additive NumberLeetCode