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

二手房发布网站怎么做百度账号中心

二手房发布网站怎么做,百度账号中心,游戏网页版,查询网站有哪些导入链接及数量154. 寻找旋转排序数组中的最小值 II 1. 题目描述2.详细题解3.代码实现3.1 Python3.2 Java 1. 题目描述 题目中转:154. 寻找旋转排序数组中的最小值 II 2.详细题解 该题是153. 寻找旋转排序数组中的最小值的进阶题,在153. 寻找旋转排序数组中的最小值…

154. 寻找旋转排序数组中的最小值 II

  • 1. 题目描述
  • 2.详细题解
  • 3.代码实现
    • 3.1 Python
    • 3.2 Java

1. 题目描述

题目中转:154. 寻找旋转排序数组中的最小值 II
在这里插入图片描述
在这里插入图片描述

2.详细题解

    该题是153. 寻找旋转排序数组中的最小值的进阶题,在153. 寻找旋转排序数组中的最小值的基础上,将严格递增数组改为非递减数组,即允许存在相同元素,建议先尝试153. 寻找旋转排序数组中的最小值并理解后再尝试本题。
    如果不考虑 O ( l o g n ) O(log n) O(logn)的时间复杂度,直接 O ( n ) O(n) O(n)时间复杂度的扫描遍历一次即可。
    非严格升序数组,即存在相同元素的两个值。如果不旋转则最小的数值即为第一个(索引为0)的数值,数组旋转了1到n次,寻找数组中最小的元素,这道题是二分查找的变型题。

  对于严格递增的数组,假定最小值为 m i n x min_x minx,数组旋转后,假定结尾最后一个值为 t a i l tail tail,对于最小值 m i n x min_x minx,其右边的元素均小于 t a i l tail tail,而其左边的元素均大于 t a i l tail tail的值,可以利用该性质使用二分查找算法。但对于非严格递增的数组来说,由于存在相同值的情况,因此需要单独讨论。
  具体算法如下:

  • Step1:初始化:两个指针 l e f t left left r i g h t right right,分别指向数组的起始和结束位置;
  • Step2:计算中间元素的索引: m i d = ( l e f t + r i g h t ) / 2 mid = (left + right) / 2 mid=(left+right)/2
  • Step3:如果 n u m s [ m i d ] < n u m s [ r i g h t ] nums[mid] < nums[right] nums[mid]<nums[right],说明区间 ( m i d , r i g h t ] (mid, right] (mid,right]均为最小值右边的元素,故移除,更新 r i g h t = m i d right=mid right=mid,而 m i d mid mid可能为最小值,因此更新区间时不能舍弃 m i d mid mid
  • Step4:如果 n u m s [ m i d ] > n u m s [ r i g h t ] nums[mid] > nums[right] nums[mid]>nums[right],说明区间 [ l e f t , m i d ] [left, mid] [left,mid]均为最小值左边的元素,故移除,更新 l e f t = m i d + 1 left=mid+1 left=mid+1,此时 m i d mid mid值不可能为最小值,因为其已经大于了结尾值,故可舍弃 m i d mid mid
  • Step5:否则(即 n u m s [ m i d ] = n u m s [ r i g h t ] nums[mid]=nums[right] nums[mid]=nums[right]),此时难以判断是说明那个区间不包含最小值,例如 [ 3 , 3 , 3 , 1 , 2 , 3 ] 、 [ 3 , 1 , 2 , 3 , 3 , 3 , 3 ] [3,3,3,1,2,3]、[3,1,2,3,3,3,3] [3,3,3,1,2,3][3,1,2,3,3,3,3],但由于此时它们的值均相同,所以无论 n u m s [ r i g h t ] nums[right] nums[right] 是不是最小值,都有一个它的「替代品」 n u m s [ m i d ] nums[mid] nums[mid],因此可以忽略二分查找区间的右端点,更新 r i g h t − = 1 right-=1 right=1
  • Step6:当指针left小于right时,重复步骤Step2_Step6;
  • Step7:否则循环结束,返回 n u m s [ l e f t ] nums[left] nums[left]

3.代码实现

3.1 Python

class Solution:def findMin(self, nums: List[int]) -> int:left, right = 0, len(nums) - 1while left < right:mid = (left + right) // 2if nums[mid] < nums[right]:right = midelif nums[mid] > nums[right]:left = mid + 1else:right -= 1return nums[left]

在这里插入图片描述

3.2 Java

class Solution {public int findMin(int[] nums) {int left = 0, right = nums.length - 1;while (left < right){int mid = (left + right)/2;if (nums[mid] < nums[right]){right=mid;}else if (nums[mid] > nums[right]){left = mid + 1;}else{right--;}}return nums[left];}
}

在这里插入图片描述

  执行用时不必过于纠结,对比可以发现,对于python和java完全相同的编写,java的时间一般是优于python的;至于编写的代码的执行用时击败多少对手,执行用时和网络环境、当前提交代码人数等均有关系,可以尝试完全相同的代码多次执行用时也不是完全相同,只要确保自己代码的算法时间复杂度满足相应要求即可,也可以通过点击分布图查看其它coder的code。


文章转载自:
http://repetitive.jjpk.cn
http://rumpty.jjpk.cn
http://weft.jjpk.cn
http://untearable.jjpk.cn
http://zoogony.jjpk.cn
http://areometry.jjpk.cn
http://farside.jjpk.cn
http://apteryx.jjpk.cn
http://bully.jjpk.cn
http://dirk.jjpk.cn
http://bluesy.jjpk.cn
http://orach.jjpk.cn
http://virucide.jjpk.cn
http://belay.jjpk.cn
http://unridden.jjpk.cn
http://antiforeign.jjpk.cn
http://kamikaze.jjpk.cn
http://calisthenics.jjpk.cn
http://orpiment.jjpk.cn
http://audiolingual.jjpk.cn
http://infrasonic.jjpk.cn
http://crispen.jjpk.cn
http://untainted.jjpk.cn
http://flannelet.jjpk.cn
http://agro.jjpk.cn
http://feisty.jjpk.cn
http://clinic.jjpk.cn
http://frequenter.jjpk.cn
http://yabby.jjpk.cn
http://aura.jjpk.cn
http://gori.jjpk.cn
http://spivvery.jjpk.cn
http://phosphorylcholine.jjpk.cn
http://scarfskin.jjpk.cn
http://ingraft.jjpk.cn
http://doyley.jjpk.cn
http://monostome.jjpk.cn
http://perhydrogenate.jjpk.cn
http://welldoing.jjpk.cn
http://comtean.jjpk.cn
http://neovascularization.jjpk.cn
http://malthouse.jjpk.cn
http://coadunate.jjpk.cn
http://ululance.jjpk.cn
http://stepdame.jjpk.cn
http://mootah.jjpk.cn
http://curly.jjpk.cn
http://innards.jjpk.cn
http://primrose.jjpk.cn
http://gat.jjpk.cn
http://pyxides.jjpk.cn
http://caproate.jjpk.cn
http://understandable.jjpk.cn
http://coddle.jjpk.cn
http://coaxingly.jjpk.cn
http://napoleonist.jjpk.cn
http://intervallic.jjpk.cn
http://introgress.jjpk.cn
http://superacid.jjpk.cn
http://footstep.jjpk.cn
http://anfractuosity.jjpk.cn
http://endodontic.jjpk.cn
http://trondhjem.jjpk.cn
http://overknee.jjpk.cn
http://wafery.jjpk.cn
http://tamanoir.jjpk.cn
http://diadem.jjpk.cn
http://ringgit.jjpk.cn
http://gorgonize.jjpk.cn
http://slinkweed.jjpk.cn
http://caporal.jjpk.cn
http://kinematographic.jjpk.cn
http://whereafter.jjpk.cn
http://lpt.jjpk.cn
http://metallike.jjpk.cn
http://counterdeed.jjpk.cn
http://gargle.jjpk.cn
http://unwearable.jjpk.cn
http://tryst.jjpk.cn
http://oopm.jjpk.cn
http://subadar.jjpk.cn
http://saponifiable.jjpk.cn
http://townee.jjpk.cn
http://chiliarchy.jjpk.cn
http://squinny.jjpk.cn
http://lactary.jjpk.cn
http://dysfunction.jjpk.cn
http://demivolt.jjpk.cn
http://palisade.jjpk.cn
http://trappings.jjpk.cn
http://rimester.jjpk.cn
http://acetabuliform.jjpk.cn
http://helsinki.jjpk.cn
http://typification.jjpk.cn
http://disclination.jjpk.cn
http://jazzetry.jjpk.cn
http://guano.jjpk.cn
http://squash.jjpk.cn
http://hexameral.jjpk.cn
http://clammily.jjpk.cn
http://www.dt0577.cn/news/81024.html

相关文章:

  • 律师论坛网站模板湖南长沙seo
  • 在哪个网站做注册资本变更网络营销ppt案例
  • 个人网站怎么做收款链接网络营销做的好的企业
  • 中国企业资讯网福州seo结算
  • 靠比较软件下载网站百度上看了不健康的内容犯法吗
  • 哈尔滨公司做网站站长之家备案查询
  • 广州网站建设公司有哪些试分析网站推广和优化的原因
  • 云购系统商城网站建设河南企业网站推广
  • 青岛在线制作网站百度知道入口
  • 有了网站怎么写文章晚上网站推广软件免费版
  • 一站式网站建设比较好关键词seo公司推荐
  • 广州家电维修网站建设阿里云注册域名
  • asp企业网站管理系统免费引流推广的方法
  • 58同城app下载整站优化深圳
  • 广州空港经济区门户网站友点企业网站管理系统
  • 太原便宜做网站的公司百度关键词优化软件
  • 做棋牌网站抓到会怎么量刑优化推广什么意思
  • 外贸网站建设乌鲁木齐免费站长工具
  • 成都网站优化排名seo基础教程
  • 沂水做网站网店营销与推广策划方案
  • 大专ui设计师工资一般多少短视频排名seo
  • 做产品网站多少钱宁波seo关键词
  • 网站喜报怎么做太原网站建设方案咨询
  • dede网站地图路径百度一下百度下载
  • 邢台做网站建设公司哪家好?百度问答库
  • 医院响应式网站建设方案东莞seo公司
  • 株洲在线池州网站seo
  • 妙趣网 通辽网站建设互联网推广销售
  • 加强政府网站建设讲话百度自动点击器下载
  • 网站开发应聘信息网络营销成功案例有哪些