QUESTION:
Given an array arr of integers, check if there exist two indices i and j such that :
i != j 0 <= i, j < arr.length arr[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] <= 103
EXPLANATION:
easy的题目, 一个for循环就能解决.
SOLUTION:
class Solution {
func checkIfExist(_ arr: [Int]) -> Bool {
var set:Set<Int> = Set()
for a in arr {
if set.contains(a * 2) || (a % 2 == 0 && set.contains(a/2)) {
return true
} else {
set.insert(a)
}
}
return false
}
}