Given an arraynumscontainingn+ 1 integers where each integer is between 1 andn(inclusive), prove that at least one duplicate number must exist. Assume that there is only one duplicate number, find the duplicate one.
Note:
O(n
2
)
.Credits:
Special thanks to@jianchao.li.fighterfor adding this problem and creating all test cases.
class Solution {
public int findDuplicate(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num : nums){
if (set.contains(num)) return num;
set.add(num);
}
return -1;
}
}