704. Binary Search
- 二分查找,实现思路等价于对撞方向的双指针,双指针用于确认区间
class Solution(object):
def search(self, nums, target):
left = 0
right = len(nums) - 1
while left <= right:
mid = int(left + (right - left) / 2)
if nums[mid] == target:
return mid
elif nums[mid] > target:
right = mid - 1
elif nums[mid] < target:
left = mid + 1
return -1
27. Remove Element
- 双指针,一个用于查找,一个用于更新
class Solution(object):
def removeElement(self, nums, val):
fast = 0
slow = 0
while fast < len(nums):
if nums[fast] != val:
nums[slow] = nums[fast]
slow += 1
fast += 1
return slow