0961. 在长度 2N 的数组中找出重复 N 次的元素
大约 2 分钟
---
0961. 在长度 2N 的数组中找出重复 N 次的元素
- 标签:数组、哈希表
- 难度:简单
题目链接
题目大意
描述:
给定一个整数数组 ,该数组具有以下属性:
- 。
- 包含 个「不同的」元素。
- 中恰有一个元素重复 次。
要求:
找出并返回重复了 次的那个元素。
说明:
- 。
- 。
- 。
- 由 个「不同的」元素组成,且其中一个元素恰好重复 次。
示例:
- 示例 1:
输入:nums = [1,2,3,3]
输出:3- 示例 2:
输入:nums = [2,1,2,5,3,2]
输出:2解题思路
思路 1:哈希表
由于数组长度为 ,包含 个不同元素,且恰有一个元素重复 次,所以只需要找到出现次数最多的元素即可。
- 使用哈希表:遍历数组,统计每个元素的出现次数。
- 返回结果:返回出现次数为 的元素。
优化:由于重复元素占据了一半的位置,我们可以使用更简单的方法:只要发现某个元素出现第二次,就返回它。
思路 1:代码
class Solution:
def repeatedNTimes(self, nums: List[int]) -> int:
seen = set()
for num in nums:
if num in seen:
return num
seen.add(num)
return -1思路 1:复杂度分析
- 时间复杂度:,其中 是数组长度,最多遍历一次数组。
- 空间复杂度:,需要使用哈希集合存储已访问的元素。