列表

详情


剑指 Offer II 004. 只出现一次的数字

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

 

示例 1:

输入:nums = [2,2,3,2]
输出:3

示例 2:

输入:nums = [0,1,0,1,0,1,100]
输出:100

 

提示:

 

进阶:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?

 

注意:本题与主站 137 题相同:https://leetcode.cn/problems/single-number-ii/

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int singleNumber(vector<int>& nums) { } };

python3 解法, 执行用时: 40 ms, 内存消耗: 16 MB, 提交时间: 2022-11-17 16:09:57

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        once = twice = 0
        for num in nums:
            once = ~twice & (once^num)
            twice = ~once & (twice^num)
        return once

上一题