栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

34. 在排序数组中查找元素的第一个和最后一个位置

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

34. 在排序数组中查找元素的第一个和最后一个位置

方法一:

'''
Author: 365JHWZGo
Description: 34. 在排序数组中查找元素的第一个和最后一个位置
Date: 2021-10-06 10:49:14
FilePath: Pythontestdemo3.py
LastEditTime: 2021-10-09 19:25:44
LastEditors: 365JHWZGo
'''
class Solution(object):    
    def searchRange(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """ 
        res =[]   
        if target not in nums:
            return [-1,-1]
        i = nums.index(target)
        num = nums.count(target)
        if num == 1:
            res = [i,i]
        else:
            res = [i,i+num-1]
        return res

方法二:

class Solution(object):
    
    def searchRange(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: List[int]
        """        
        res = [-1,-1]
        left, right = 0, len(nums) - 1        
        while right >= left:
            mid = (left + right) // 2
            if target == nums[mid]:
                for i in range(mid,-1,-1):
                    if nums[i]==target:
                        l = i
                    else:
                        break
                for j in range(mid,len(nums)):
                    if nums[j]==target:
                        r = j
                    else:
                        break
                res.clear()
                res.extend([l,r])                                
                break
            elif target > nums[mid]:
                left = mid + 1                
            else:
                right = mid - 1 
        return res 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/303723.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号