题目描述:
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,3,2]
输出: 3
示例 2:
输入: [0,1,0,1,0,1,99]
输出: 99
解题思路:
用字典存储每个数字出现的次数,在遍历字典找出只出现一个的数字(时间比较长)
class Solution:
def singleNumber(self, nums: List[int]) -> int:
dic={}
for i in nums:
dic[i]=dic.get(i,0)+1
#print(dic)
for key,value in dic.items():
if value==1:
return key

评论区答案1:
用所有数字的和来求解:
return (3*sum(set(nums)) - sum(nums)) // 2
本文介绍了一种解决特定数组问题的高效算法,即在一个除一个元素外其余元素均出现三次的数组中,如何快速找到仅出现一次的元素。通过巧妙利用数学运算,避免了额外空间的使用,实现了线性时间复杂度。
2521

被折叠的 条评论
为什么被折叠?



