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 @   是冰美式诶  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示