代码随想录训练营第一天|704.二分查找27.移除元素

class Solution:
    def search(self, nums: List[int], target: int) -> int:
        #左闭右开
        left = 0
        right = len(nums)
        while right>left:
            mid = int((right+left)/2)
            if nums[mid] == target:
                return mid
            elif nums[mid]>target:
                right = mid
            else:
                left = mid+1
        return -1

 第一题二分查找,要注意区间不变量,注意while的边界条件是<还是<=,遇到有序数组要想是否能用二分查找

class Solution:
    def removeElement(self, nums: List[int], val: int) -> int:
        slow = 0
        for fast in range(0,len(nums)):
            if nums[fast] != val:
                nums[slow]=nums[fast]
                slow = slow +1
        return slow

第二道题移除元素,定义快慢指针,快指针记录被放进来的元素,慢指针记录放进来的位置。

你可能感兴趣的:(python,leetcode,开发语言)