题目链接:
704-二分查找:
代码
class Solution:
def search(self, nums: List[int], target: int) -> int:
left, right = 0, len(nums) - 1
while left <= right:
middle = (left + right) // 2
if nums[middle] > target:
right = middle - 1
elif nums[middle] < target:
left = middle + 1
else:
return middle
return -1
注意
两边都是闭区间,那么循环中也要保持两边都是闭区间
27-移除元素
代码
1 暴力
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
n = len(nums)
t = 0
for i in range(n):
i = i - t
if nums[i] == val:
del nums[i]
t += 1
return n-t
2 双指针
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
fast = 0
slow = 0
while fast < len(nums):
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow
注意
注意理解双指针的删除过程