-
Notifications
You must be signed in to change notification settings - Fork 0
/
checkIfDoubleExist.py
49 lines (36 loc) · 1.27 KB
/
checkIfDoubleExist.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# Check If N and Its Double Exist
# Given an array arr of integers, check if there exists two integers N and M such that N is the double of M ( i.e. N = 2 * M).
# More formally check if there exists 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: N = 10 is the double of M = 5,that is, 10 = 2 * 5.
# Example 2:
# Input: arr = [7,1,14,11]
# Output: true
# Explanation: N = 14 is the double of M = 7,that is, 14 = 2 * 7.
# Example 3:
# Input: arr = [3,1,7,11]
# Output: false
# Explanation: In this case does not exist N and M, such that N = 2 * M.
# Constraints:
# 2 <= arr.length <= 500
# -10^3 <= arr[i] <= 10^3
# Hide Hint #1
# Loop from i = 0 to arr.length, maintaining in a hashTable the array elements from [0, i - 1].
# Hide Hint #2
# On each step of the loop check if we have seen the element 2 * arr[i] so far or arr[i] / 2 was seen if arr[i] % 2 == 0.
class Solution:
def checkIfExist(self, arr: List[int]) -> bool:
for i in arr:
if i == 0:
pass
elif i*2 in arr:
return True
if arr.count(0) > 1:
return True
else:
return False