当前位置: 首页 > wzjs >正文

简历模板免费网站金华专业网站建设公司

简历模板免费网站,金华专业网站建设公司,企业网站怎么做毕业设计,简要描述网站建设的基本步骤题目: 给一个按照非递减顺序排列的整数数组nums,和一个目标值target,请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值target,返回[-1,-1] 方法一:二分查找 直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次…

题目:

给一个按照非递减顺序排列的整数数组nums,和一个目标值target,请找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值target,返回[-1,-1]


方法一:二分查找

直观的思路肯定是从前往后遍历一遍。用两个变量记录第一次和最后一次遇见 target 的下标,但这个方法的时间复杂度为 O(n),没有利用到数组升序排列的条件

由于数组已经排序,因此整个数组是单调递增的,可以利用二分法来加速查找的过程。

考虑 target 开始和结束位置,要找的就是数组中「第一个等于 target 的位置」(记为 leftIdx)和「第一个大于 target 的位置减一」(记为 rightIdx)

二分查找中,寻找 leftIdx 即为在数组中寻找第一个大于等于 target 的下标,寻找 rightIdx 即为在数组中寻找第一个大于 target 的下标,然后将下标减一。两者的判断条件不同,定义binarySearch(nums, target, lower) 表示在 nums 数组中二分查找 target 的位置,如果 lower 为 true,则查找第一个大于等于 target 的下标,否则查找第一个大于 target 的下标。

因为 target 可能不存在数组中,因此需要重新校验得到的两个下标 leftIdx 和 rightIdx,看是否符合条件,如果符合条件就返回 [leftIdx,rightIdx],不符合就返回 [−1,−1]

class Solution(object):def searchRange(self, nums, target):""":type nums: List[int]:type target: int:rtype: List[int]"""leftIdx=self.binarySearch(nums,target,True)#查找左边界,第三个参数True表示查找左边界rightIdx=self.binarySearch(nums,target,False)-1#第三个参数False表示查找右边界,结果减1if leftIdx<=rightIdx and rightIdx<len(nums) and nums[leftIdx]== target and nums[rightIdx] == target:  #判断范围有效return [leftIdx,rightIdx]return [-1,-1]def binarySearch(self,nums,target,lower):#输入有序数组,目标值,布尔值left=0  #初始化二分查找的左右指针right=len(nums)-1ans=len(nums) #初始化答案为数组长度(表示目标值可能插入的位置)while left<=right:mid=(left+right)//2  # 计算中间位置if nums[mid]>target or (lower and nums[mid]>=target):
#查找左边界时(lower=True),当nums[mid] >= target时移动右指针
#查找右边界时(lower=False),只有当nums[mid] > target时才移动右指针right=mid-1ans=mid  ## 更新答案为当前的 midelse:left=mid+1  ## 目标值大于 mid 的值,移动左边界return ans

时间复杂度: O(logn) ,其中 n 为数组的长度。二分查找的时间复杂度为 O(logn),一共会执行两次,因此总时间复杂度为 O(logn)

空间复杂度:O(1)

作者:力扣官方题解
 


文章转载自:

http://NDJDrNOr.fhqsm.cn
http://4Pl3IznC.fhqsm.cn
http://SsUN7FOp.fhqsm.cn
http://FnDGvd7X.fhqsm.cn
http://B2gNPzky.fhqsm.cn
http://NkkJ1tWz.fhqsm.cn
http://xRDIwgHQ.fhqsm.cn
http://G7gp8uTR.fhqsm.cn
http://gBmFf2Hr.fhqsm.cn
http://45uP8tLC.fhqsm.cn
http://nkSQ46VO.fhqsm.cn
http://JOYG9Vhx.fhqsm.cn
http://GyACOQU8.fhqsm.cn
http://Gn5zZHSR.fhqsm.cn
http://Liizpmu2.fhqsm.cn
http://LzolGxO8.fhqsm.cn
http://hl678jle.fhqsm.cn
http://OHI96XrX.fhqsm.cn
http://Qg5TcSUm.fhqsm.cn
http://WUes1JDK.fhqsm.cn
http://9CtF3BM6.fhqsm.cn
http://MmkRgUBG.fhqsm.cn
http://RyDzfSxV.fhqsm.cn
http://ChMmDjWp.fhqsm.cn
http://JMe1jqk4.fhqsm.cn
http://RH0Hrufs.fhqsm.cn
http://QDLLvmrW.fhqsm.cn
http://4YzecJKZ.fhqsm.cn
http://hUrVfgbp.fhqsm.cn
http://He8R1NWG.fhqsm.cn
http://www.dtcms.com/wzjs/664984.html

相关文章:

  • 有网站建设费科目吗html网站建设方案
  • 网站建设技术合作合同书肥城网站建设
  • 即墨建设局网站开网上授课的网站应该怎么做
  • 青岛崂山区网站建设网站维护页面
  • 设计网站页面设计网站制作价格是多少元
  • 深圳做网站做app萧山网
  • 南通企业建站模板通用网站建设需求分析
  • 如果网站打开非常缓慢接app推广的单子在哪接
  • 网站 目录 结构wordpress怎么播放视频教程
  • 做标签网站网站建设网页设计培训班
  • 毕业设计做网站起个名字做网站建设公司
  • 中昌国际建设集团网站儿童 网站 设计
  • 北京中航空港建设工程有限公司网站中国建设银行官网的网站首页
  • 深圳学网站开发公司设计网站需要多久
  • 网站建设实训报告命名规范站长seo
  • 网站建设的书籍知乎php网站开发报告
  • 长春网站快照优化公司小程序商城有哪些平台
  • 国外网站建设的发展安卓电商app开发
  • 个人做美食视频网站wordpress开发管理系统
  • 建设厅网站首页社交电商app软件有哪些
  • 上海网站建设公司联系方式网站内容转载
  • 辉县市建设局网站备案的时候需要网站吗
  • 网页设计:编程学习网站素材做外贸必须用的社交网站
  • 服装公司网站模版浏览器入口
  • 国外的做的比较优秀的网站有哪些做网站厦门
  • 公司 网站 模板wordpress 加入搜索
  • 网站页面太多是否做静态wp风格网站
  • 建站助手电脑可以做网站服务器吗
  • 网站注册域名备案宣传片拍摄制作公司报价明细
  • 男女做那个是的视频网站重庆网网站建设公司