核心代码
class Solution:
def singleNumber(self, nums: List[int]) -> int:
return (3 * sum(set(nums)) - sum(nums))//2
另一解法
class Solution:
def singleNumber(self, nums: List[int]) -> int:
from collections import defaultdict
record = defaultdict(int)
for i,x in enumerate(nums):
record[x] += 1
for key,val in record.items():
if val == 1:
return key
解题思路:第一种解法:我们使用 3 * set(nums) 这个是将所有的数据都变成了3个,和sum(nums)做减法的话,留下的就是那个单独数字的两倍,所以最后在除以2即可;第二种解法:我们使用字典的形式对数据的个数进行统计,最后遍历字典,拿到那个次数为1的数字就是只出现了一次的数字.