704.二分查找
解题思路:二分查找法(数组为升序)
method1:[left,right]
class Solution:
def search(self, nums: List[int], target: int) -> int:
# method 1 [left,right]
left = 0
right = len(nums) - 1
while left <= right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] > target:
right = mid - 1
elif nums[mid] < target:
left = mid + 1
return -1
method2:[left,right)
class Solution:
def search(self, nums: List[int], target: int) -> int:
# method 2 [left,right)
left = 0
right = len(nums)
while left < right:
mid = (left + right) // 2
if nums[mid] == target:
return mid
elif nums[mid] > target:
right = mid
elif nums[mid] < target:
left = mid + 1
return -1
27. 移除元素
解题思路:双指针(快指针:寻找新数组的元素 ,新数组就是不含有目标元素的数组,
慢指针:指向更新 新数组下标的位置)
class Solution:
def removeElement(self, nums: List[int], val: int) -> int:
left = 0
for right in nums:
if right != val:
nums[left] = right
left += 1
return left