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

河源网站建设关键词查网站

河源网站建设,关键词查网站,自建团体电子商务网站建设成本,做展示型网站便宜吗题目: 已知一个长度为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://www.dtcms.com/wzjs/112508.html

相关文章:

  • 网页设计html代码教程株洲seo优化哪家好
  • 遥控器外壳设计网站推荐全网营销图片
  • 重庆制作网站交换友情链接的方法
  • 十大中国网站制作全国新闻媒体发稿平台
  • 网站建设还能赚钱吗免费推广产品的网站
  • 网站建设需要会什么新闻媒体发稿平台
  • 南通微信网站开发天津关键词优化网站
  • 宁波住房建设局网站搜索引擎优化的内容包括
  • 无锡高端网站建设机构天津百度推广电话号码
  • 深圳前50强网站建设公司市场营销推广
  • 视频网站点击链接怎么做电商培训班
  • 87网站建设工作室seo关键词推广多少钱
  • 做网站话术chatgpt网站
  • 网站制作要求产品推广渠道
  • 嘉兴网站制作计划信息流优化师职业规划
  • 网页设计欣赏可爱风格西安网站seo诊断
  • 站内seo和站外seo区别百度怎么推广网站
  • 酷炫给公司网站欣赏50篇经典软文100字
  • 营销型企业网站建设橘子seo历史查询
  • 中国铁路建设行业协会网站百度问问首页
  • 建设网站对服务器有什么要求吗厦门百度seo公司
  • 制作网站开发项目的方案书数据分析工具
  • 网站建设意向表什么是网站推广
  • jsp 网站连接数据库百度推广后台
  • wordpress 多站点迁移品牌软文范文
  • 闵行营销型网站制作seo优化 搜 盈seo公司
  • 临沂企业网站建设优化大师兑换码
  • 网站首页原型图怎么做深圳网站提升排名
  • 做网站 郑州公司网址提交百度收录
  • 网站图片漂浮代码网上做广告推广