给你一个整数数组 nums
,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
例:
输入:nums = [2,2,3,2] 输出:3
解析:
先升序排列,然后从第一个开始判断,当前值和后一个值是否相等,相等则指针加三,不等则返回值,然后记得判断边界情况。
class Solution(object):
def singleNumber(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums.sort()
i = 0
while True:
if i+1>=len(nums): # 边界
return nums[i]
elif nums[i] != nums[i+1]: # 不相等
return nums[i]
else: # 相等
i += 3