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

网站建设网络推广文章wordpress加slider

网站建设网络推广文章,wordpress加slider,net的电商网站建设,做货运代理网站题目: 已知一个长度为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/600636.html

相关文章:

  • 六灶网站建设seo网站推广怎么做
  • 网站管理员要干些什么开发 程序网站
  • 机械行业网站建设方案我要表白网站
  • wordpress个人网站深圳网站建设q479185700強
  • 做竞价网站开发公司网站设计
  • 如何以目录形式访问网站市场营销策略有哪几种
  • 销售公司做网站自学网站官网
  • 网站维护托管公司深圳家居网站建设公司排名
  • 海外如何淘宝网站建设网站建设需要注意哪些内容
  • 云南建设厅网站删除微信小程序公众平台
  • 科讯cms网站管理系统kesioncms微信h5作品欣赏
  • 模板网站的好处商务网站建设实训报告1500字
  • 网站自己做服务器做效果图需要提供什么
  • 网站建设推广服务合同范本织梦做的网站首页排版错误
  • 银川建设网站幕墙配件在那个网站做推广好
  • 男女做暖暖不要钱的试看网站国家企业信用系统查询官网入口
  • 郑州第一附属医院不孕不育科搜索引擎营销seo
  • 建设网站联系方式谷歌 chrome 浏览器
  • 推广类网站网络规划设计师如何复习
  • 网站开发专业感想网站建设产品说明书
  • 53套网站源码wordpress 插件错误
  • 网站推广无锡手机怎么防止网站自动跳转
  • 大芬地铁站附近做网站自主建站是什么意思
  • 做建筑材料哪个网站好一点为什么大公司不用c 做网站
  • 电话销售做网站犯法吗园林公司网站建设费用
  • 定制做网站费用网站vip功能怎么实现
  • .net 网站开发视频教程学网站建设 赚钱
  • 手机网页及网站设计创办一个网站要多少钱
  • 网站域名需要每年续费深圳外贸企业网站建设
  • 有ip地址如何做网站厦门 公司网站建设