题目
剑指 Offer 56 - II. 数组中数字出现的次数 II
在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。
解题思路
Python
python会有一个函数是sort()排序,那么就只需要先排序,然后在以3步进对比,如果不相等就是答案。
如果不用这个,那也可以使用字典的形式,key,value的形式,得出哪个key的value为1就是答案。
排序
class Solution:
def singleNumber(self, nums: List[int]) -> int:
nums.sort()
for i in range(0,len(nums)-3,3):
if nums[i] !=nums[i+1]:
return nums[i]
return nums[-1]
字典
class Solution:
def singleNumber(self, nums: List[int]) -> int:
dic = {}
for value in nums:
if value not in dic.keys():
dic[value ] = 1
else:
dic[value ] += 1
for key in dic.keys():
if dic[key] == 1:
return key