Leetcode Link: 剑指 Offer 56 - I. 数组中数字出现的次数 - 力扣(LeetCode)

题目

解法一

思路剑指 Offer 56 - I. 数组中数字出现的次数(位运算,清晰图解) - 数组中数字出现的次数 - 力扣(LeetCode)

题解

class Solution:
    def singleNumbers(self, nums: List[int]) -> List[int]:
        tmp = 0
        for val in nums:
            tmp ^= val
 
        ### 找到对应的位置
        mask = 1 # 这里不能是mask = 0
        while(tmp & mask == 0):
            mask <<= 1
        
        res1 = 0
        res2 = 0
        for val in nums:
            if val & mask == 0:
                res1 ^= val
            else:
                res2 ^= val
        return [res1, res2]

解法二

思路

题解

解法三

思路

题解

启发和联系