Given an array arr of integers, check if there exist two indices i and j such that :
i != j0 <= i, j < arr.lengtharr[i] == 2 * arr[j]
Example 1:
Input: arr = [10,2,5,3] Output: true Explanation: For i = 0 and j = 2, arr[i] == 10 == 2 * 5 == 2 * arr[j]
Example 2:
Input: arr = [3,1,7,11] Output: false Explanation: There is no i and j that satisfy the conditions.
Constraints:
2 <= arr.length <= 500-103 <= arr[i] <= 103class Solution {
public boolean checkIfExist(int[] arr) {
Set<Integer> s = new HashSet<>();
for (int i : arr) {
if (s.contains(i * 2) || i % 2 == 0 && s.contains(i / 2))
return true;
s.add(i);
}
return false;
}
}