Binary Search
278,35见Leetcode StudyPlan 系列记录–Algorithm
Easy
704. Binary Search —模版
用二分法模版
注意两种版本的区别,否则报错
first = 0
end = len(nums)#end不会成为索引溢出
while first < end:#不能重合
mid = (first +end)//2
if nums[mid] == target:
return mid
elif nums[mid]> target:
end = mid
else:
first = mid+1
return -1
first = 0
end = len(nums) - 1
while(first <= end):#能重合
mid = int((first + end)//2)
if nums[mid] == target:
return mid
elif nums[mid] < target:
first = mid + 1
else:
end = mid - 1
return -1
349. Intersection of Two Arrays
加break否则会死循环
nums2.sort()
seen = []
ans = []
for item in nums1:
if item in seen: continue
l = 0
r = len(nums2)-1
while l<=r:
mid = int(l+(r-l)//2)
if nums2[mid] == item:
ans.append(item)
break########
elif nums2[mid] < item:
l = mid + 1
else:
r = mid - 1
seen.append(item)
return ans