leetcode 刷题记录 704.二分查找 27.

class Solution:

    def search(self, nums: List[int], target: int) -> int:

        left = 0

        right = len(nums) - 1

        while left <= right:

            middle = (left + right)//2  # 地板除,避免小数导致error

            if nums[middle] < target: # 如果区间中间的数小于目标,则说明目标值在右半区间,否则则为左半区间。

                left = middle + 1

            elif nums[middle] > target:

                right = middle - 1  

            else:

                return middle  # 找到则返回

       

        # 若没有找元素,则返回-1

       return -1

   

lass Solution:

    def removeElement(self, nums: List[int], val: int) -> int:

       

       

        left = 0

        right = len(nums) - 1

       

        while(left <= right):

            # left 用来记录边界

            if nums[left] == val:

                if nums[right] != val:

                    nums[left], nums[right] = nums[right], nums[left]

                    left += 1

                right -= 1  

            else:

                left += 1 # 没找到val,left 就一直前进

        return left

    

你可能感兴趣的:(leetcode,算法)