数组理论基础
704. 二分查找
# 左闭右闭区间[left, right]
size = len(nums)
left = 0
right = size -1
while left <= right: # 当left=right的时候,循环区间是个合法区间
middle = (right + left) // 2
if nums[middle] < target:
left = middle + 1 # 更新区间左边起始点,+1是因为已经可以明确nums[middle]不等于target
elif nums[middle] > target:
right = middle - 1
else:
return middle
return -1
27.移除元素
# 快慢指针
slow = 0 # slow代表新数组的下标
for fast in range(len(nums)): # fast遍历原数组,把符合的值赋给新数组
if(nums[fast] != val):
nums[slow] = nums[fast]
slow += 1
return slow