この問題では HashSet を使う方法と、sortを使う方法の二種類がある。
HashSetの方法
一つ目 要素を比較
public boolean containsDuplicate(int[] nums) {
HashSet<Integer> hashset = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
if (hashset.contains(nums[i]))
return true;
hashset.add(nums[i]);
}
return false;
}
二つ目 長さを比較
public boolean containsDuplicate(int[] nums) {
Set<Integer> set = new HashSet<>();
for (int num:nums) {
set.add(num);
}
int arrayLength = nums.length;
int hashLength = set.size();
if(arrayLength == hashLength) return false;
else return true;
}
Sortの方法
public boolean containsDuplicate(int[] nums) {
Arrays.sort(nums);//sorting
for(int i =0; i < nums.length-1; i++) {
if(nums[i] == nums[i+1]) return true; //checking duplicates
}
return false;
}
参考: YouTube
学んだことを簡単にまとめているだけなので悪しからず。