NO33. 搜索旋转排序数组 NO34. 在排序数组中查找元素的第一个和最后一个位置 NO35. 搜索插入位置

#很简单的一道双指针题目,就不做详细解释了
class Solution:
    def search(self, nums: List[int], target: int) -> int:
        left,right = 0,len(nums)-1
        if not nums:
            return -1
        while left<=right:
            if nums[left]==target:
                return left
            elif nums[right]==target:
                return right
            else:
                left+=1
                right-=1
        return -1 
class Solution:
    def searchRange(self, nums: List[int], target: int) -> List[int]:
        l,r=0,len(nums)-1
        while l<=r:
            if nums[l]==target:
                if nums[r]==target:
                    return[l,r]
                r-=1
            else:
                l+=1
        return [-1,-1]

            
class Solution:
    def searchInsert(self, nums: List[int], target: int) -> int:
        left,right = 0,len(nums)-1
        cmp = 0
        if not nums:
            return -1
        while left<=right:
            if nums[left]==target:
                return left
            elif nums[right]==target:
                return right
            else:
                left+=1
                right-=1
        nums.append(target)
        nums.sort()
        return nums.index(target)#仅用后三行也可以的,Python作弊法

 

 
posted @ 2022-07-17 15:43  是冰美式诶  阅读(25)  评论(0)    收藏  举报