leetcode 137
时间: 2025-02-18 07:52:49 浏览: 48
### LeetCode Problem 137: Single Number II
对于LeetCode上的第137号问题,即Single Number II,该问题是关于在一个数组中找出唯一只出现一次的那个数,而其他所有的数都恰好出现了三次。为了实现这一目标,可以采用位操作的方法来解决这个问题。
一种有效的方式是利用三个变量`ones`, `twos` 来记录每一位上出现过几次的情况:
- 当某一位在遍历过程中第一次遇到时,则将其加入到`ones` 中;
- 如果再次遇到相同的数字,则将此位置从`ones` 移除并加入到`twos` 表示已经遇到了两次;
- 若第三次遇见相同数值,则把对应的位置从`twos` 清零;最终剩下的就是仅出现了一次的那一个数[^4]。
下面是具体的Python代码实现方式:
```python
class Solution(object):
def singleNumber(self, nums):
ones, twos = 0, 0
for num in nums:
ones = (ones ^ num) & ~twos
twos = (twos ^ num) & ~ones
return ones
```
这种方法的时间复杂度为O(n),其中n表示输入列表nums 的长度。空间复杂度则保持常量级别O(1),因为只需要固定数量的空间即可完成计算过程[^4]。
阅读全文
相关推荐

















