1346. Check If N and Its Double Exist #
题目 #
- 给你一个整数数组
arr,请你检查是否存在两个整数N和M,满足N是M的两倍(即,N = 2 * M)。 - 更正式地,检查是否存在两个下标
i和j满足:i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j]
思路 #
哈希 #
代码 #
哈希 #
class Solution {
public boolean checkIfExist(int[] arr) {
Set<Integer> set = new HashSet<>();
for (int num: arr) {
if (set.contains(2 * num)) return true;
if (num % 2 == 0 && set.contains(num / 2)) return true;
set.add(num);
}
return false;
}
}