You are given an integer array
nums
with a length of2 * n
wheren
is greater than 1. The elements innums
are between 1 andn
, inclusive.The array
nums
contains n + 1 unique elements, and exactly one of these elements is repeatedn
times.Return the element that is repeated
n
times.
nums
will have a length of 2 * n
where n > 1
.nums
are between 1
and n
.n
times.n
times.nums = [1, 2, 3, 3]
3
nums = [2, 1, 2, 5, 3, 2]
2
nums = [5, 1, 5, 2, 5, 3, 5, 4]
5
To solve this problem, we need to identify which element is repeated exactly n
times in the array. Given the constraints and properties of the array, a few different methods could work, but for simplicity and efficiency:
n
, return that element immediately.This approach ensures that we don’t traverse the array more than necessary and provides a time-efficient solution.
Let’s implement the hash map strategy in Python:
def repeatedNTimes(nums):
from collections import defaultdict
counts = defaultdict(int)
for num in nums:
counts[num] += 1
if counts[num] == len(nums) // 2:
return num
# Test cases
print(repeatedNTimes([1, 2, 3, 3])) # Output: 3
print(repeatedNTimes([2, 1, 2, 5, 3, 2])) # Output: 2
print(repeatedNTimes([5, 1, 5, 2, 5, 3, 5, 4])) # Output: 5
nums
array. We traverse the array once, and dictionary operations (insert and check) are average O(1).nums
array, as we may need to store counts for all elements in the worst case.This solution is efficient for the given problem constraints.
Got blindsided by a question you didn’t expect?
Spend too much time studying?
Or simply don’t have the time to go over all 3000 questions?