只出现一次的数字2
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题
输入为一个列表
输出为一个int整数
核心思想:位运算,追踪每一位的出现次数,当出现一次时由ones储存,出现两次由two储存,出现三次的时候就应该清除掉
代码
class Solution:def singleNumber(self, nums: List[int]) -> int:ones,twos = 0,0for num in nums:twos |= ones & numones ^= numcommon_bit = ~(ones & twos)twos &= common_bit ones &= common_bitreturn ones
