Check If N and Its Double Exist LeetCode solution in Python

1
class Solution(object):
2
def checkIfExist(self, arr):
3
"""
4
:type arr: List[int]
5
:rtype: bool
6
"""
7
"""
8
执行用时:24 ms, 在所有 Python 提交中击败了59.63%的用户
9
内存消耗:13 MB, 在所有 Python 提交中击败了58.72%的用户
10
"""
11
arr = sorted(arr) # 排序
12
for i in range(len(arr) - 1): # 只要搜寻 n - 1 个,因为最后一个数不会有倍数出现
13
l = 0
14
r = len(arr) - 1
15
while l <= r:
16
mid = int((l + r) / 2) # 目前位置
17
val1 = arr[mid] # 目前位置的数值
18
val2 = arr[i] * 2 # 要寻找的目标
19
if val1 == val2 and mid != i: # arr[mid] 必須和 arr[i] * 2 且不同位置
20
return True
21
elif val2 < val1: # 目标在目前位置的左边,所以要往左边找
22
r = mid - 1
23
else: # 目标在目前位置的右边,所以要往右边找
24
l = mid + 1
25
return False

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0