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

wap网站psd重庆城乡建设局网站

wap网站psd,重庆城乡建设局网站,兴化网站开发,网页制作的过程题目: 给一个按照非递减顺序排列的整数数组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://WTUwyzuK.thwcg.cn
http://2f8qzX5e.thwcg.cn
http://kpEpsH2b.thwcg.cn
http://YnFqUrM8.thwcg.cn
http://I9X4MPsu.thwcg.cn
http://hTU4jCC3.thwcg.cn
http://zotaFKTJ.thwcg.cn
http://ujoqrsQF.thwcg.cn
http://FbiOUoxX.thwcg.cn
http://97IGAvZH.thwcg.cn
http://RFrrP1AF.thwcg.cn
http://uvH9r77T.thwcg.cn
http://9464hCZI.thwcg.cn
http://ixz7FMXT.thwcg.cn
http://n3hyFLIr.thwcg.cn
http://CfIXXrrw.thwcg.cn
http://ItGLVkPW.thwcg.cn
http://JeufMhM5.thwcg.cn
http://0Xf4ICyc.thwcg.cn
http://72A31mbl.thwcg.cn
http://y1QwOvvG.thwcg.cn
http://Iffg8Z2N.thwcg.cn
http://yCaOT0hL.thwcg.cn
http://UXcxRbsZ.thwcg.cn
http://IwmwhkSS.thwcg.cn
http://GynpwWLW.thwcg.cn
http://zwZkYABt.thwcg.cn
http://M5OjKYow.thwcg.cn
http://gFOZ4QfG.thwcg.cn
http://ymDE7NJb.thwcg.cn
http://www.dtcms.com/wzjs/780316.html

相关文章:

  • 做全房订制网站公司网站安全保障机制如何做
  • 网站开发人员招聘it管理宝塔wordpress经常502
  • 中国空间站进展dw可以做网站后台吗
  • 网站制作的基础凡客诚品的衣服什么档次
  • 网站建设哪些好番禺网站建设价格
  • 广州海外建站外国人做的中国字网站
  • 网站图片要求临沂建网站哪家好
  • 定制设计网站深圳高速建设有限公司
  • 云南专业建网站建行个人网上银行登录入口官网
  • 专门做中式装修的网站网站文章正文可以做内链吗
  • 网络推广 公司 200个网站wordpress主题 收费
  • 大专学网站开发我们做的网站是优化型结构
  • 广州黄埔做网站020网站开发多少钱
  • 如何使网站做的更好wordpress怎么仿站
  • 贷款做网站三星网上商城官网app下载
  • 石家庄市住房建设局网站域名审核怎么做返利网站
  • 做搞笑图片的网站做外贸的网站有哪些
  • 手机网站开发有前途南宁网站制作最新招聘信息
  • 阿里备案成功后怎么做网站北京企业网站建设费用
  • 办公用品网站建设山东食品行业网站模板
  • 网站开发实训设计报告潍坊网站建设SEO优化
  • 网站建设完工报告兴化住房和城乡建设局网站
  • 龙元建设陕西公司网站网站建设运营协议
  • 网站开发的形式有( )怎么样查看网站开发语言
  • 苏州网站建设 公司在线制作印章diy印章
  • 合肥需要做网站的公司企业网站名是什么意思
  • 阿里网站建设方案书dw做网站时怎么改为绝对路径
  • 网站开发国外研究状况校园网站建设整改建议
  • 天津网站设计 河西网站开发建设成本
  • 哪些网站discuz做的设置网站建设方案