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

珠海正规网站制作哪家好lol解说网站源码

珠海正规网站制作哪家好,lol解说网站源码,郑州网站推广公司咨询,wordpress 怎么安装插件题目: 已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组,例如,原数组 nums [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若…

题目:

已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组,例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:

  • 若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]
  • 若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]

注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]] 

给定一个元素互不相同的数组nums,它原来是一个升序排列的数组,并按上述情形进行了多次旋转,找出并返回数组中的最小元素。

 


题目:二分查找

一个不包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图:

 其中横轴表示数组元素的下标,纵轴表示数组元素的值。图中标出了最小值的位置,是我们需要查找的目标。

考虑数组中的最后一个元素x::在最小值右侧的元素(不包括最后一个元素本身),它们的值一定都严格小于 x;而在最小值左侧的元素,它们的值一定都严格大于 x。因此可以通过二分查找的方法找出最小值。

在二分查找的每一步中,左边界为 low,右边界为 high,区间的中点为 pivot,最小值就在该区间内。将中轴元素 nums[pivot] 与右边界元素 nums[high] 进行比较,

可能会有以下的三种情况:

第一种情况是 nums[pivot]<nums[high]。如下图所示,这说明 nums[pivot] 是最小值右侧的元素,因此我们可以忽略二分查找区间的右半部分。

第二种情况是 nums[pivot]>nums[high]。如下图所示,这说明 nums[pivot] 是最小值左侧的元素,因此我们可以忽略二分查找区间的左半部分。

 

由于数组不包含重复元素,并且只要当前的区间长度不为 1,pivot 就不会与 high 重合;而如果当前的区间长度为 1,这说明我们已经可以结束二分查找了。因此不会存在 nums[pivot]=nums[high] 的情况。

当二分查找结束时,就得到了最小值所在的位置。

class Solution(object):def findMin(self, nums):""":type nums: List[int]:rtype: int"""low,high=0,len(nums)-1 #初始化两个指针low和high,分别指向数组的开始(0)和结束位置while low<high:#当low指针小于high指针时继续循环mid=low+(high-low)//2  #计算中间位置if nums[mid]<nums[high]: #说明最小值在左半部分high=mid  #将右指针移动到中间位置else: #说明最小值在右半部分low=mid+1return nums[low]  #low == high,指向的就是最小值的位置

时间复杂度为: O(logn),其中 n 是数组 nums 的长度

空间复杂度:O(1)

源自力扣官方题解
 

 


文章转载自:

http://IsIWRVo4.gbqgr.cn
http://uwk2G69X.gbqgr.cn
http://NjTFC3bz.gbqgr.cn
http://cw8w4bPM.gbqgr.cn
http://sGm4eg50.gbqgr.cn
http://kCC0fpQv.gbqgr.cn
http://ggDWQHz6.gbqgr.cn
http://yJE6GbRC.gbqgr.cn
http://4VwFKj3d.gbqgr.cn
http://h0dbr4jE.gbqgr.cn
http://13ODKdVO.gbqgr.cn
http://eNzTJz0A.gbqgr.cn
http://TufU1SME.gbqgr.cn
http://Mw5SmdEC.gbqgr.cn
http://n8qsYe1L.gbqgr.cn
http://Gd6RipI0.gbqgr.cn
http://DacL237s.gbqgr.cn
http://YFVJP4N8.gbqgr.cn
http://Ue1NRoUM.gbqgr.cn
http://E8P5ZQCJ.gbqgr.cn
http://kBgKSKBu.gbqgr.cn
http://oh0N9O0D.gbqgr.cn
http://tpNWuAN3.gbqgr.cn
http://2vXTMRrV.gbqgr.cn
http://xJS2NOzo.gbqgr.cn
http://HO5h5CRb.gbqgr.cn
http://Ercdtsjo.gbqgr.cn
http://CSc4S3hv.gbqgr.cn
http://MgaWI6rZ.gbqgr.cn
http://lmP8LzbL.gbqgr.cn
http://www.dtcms.com/wzjs/635046.html

相关文章:

  • 怎么做移动端网站WordPress5新版文章标签
  • 泰兴企业网站建设做php网站会员开店代码如何编写
  • 简述网站设计的开发流程手机端是什么
  • 网站开发留言板网站建站免费
  • 临汾网站建设价格网站建设工作汇报
  • wp做音乐网站必备广州网络科技有限公司
  • 网站建设应注意的问题有哪些怎么建设网站手机网站制作价格
  • wordpress下载网站模板wordpress怎么实现注册登录
  • 重庆免费推广网站陕西交通建设集团信息网站
  • 乡镇网站建设工作计划网页版传奇有哪些
  • 网站模板编辑wordpress优化代码
  • 关于网站开发的自我评价北京长空建设有限公司网站
  • 沈阳正规制作网站公司哪家好蚌埠集团网站建设
  • 企业网站流程图安阳网站建设
  • 黑龙江省城乡和建设厅网站首页58网站自己做
  • 珠宝网站建设公司建设刷单网站
  • 永久网站体育类网站模板
  • 锦州网站建设排行榜运营一个网站的成本
  • 建设专业网站空调安装工做网站
  • 山东省住房和城乡建设局网站产品开发流程图模板
  • 在国外做热情网站的风险html网站建设基本流程图
  • 保定网站开发搞软件开发的一般学什么专业
  • 重庆微信网站制作公司机械英文网站
  • 四平网站建设哪家好国外黄冈网站推广软件有哪些
  • 河南春辉建设集团官方网站做微信推送用什么网站
  • 襄阳网站建设公司做水产有什么网站
  • 云空间的网站wordpress程序重装
  • 制作wordpress模板宁波seo行者seo09
  • 永年做网站旅游宣传网站建设方案
  • 东莞网站建设营销平台的网站打不开怎么办