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

心理教育网站建设目的九江建网站多少钱

心理教育网站建设目的,九江建网站多少钱,湖南省建设安监局官网站,一整套vi设计市场价格题目链接:旋转数组的最小数字 第一种:正确写法(num[m]和nums[r]比较) class Solution { public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * param nums int整型v…

题目链接:旋转数组的最小数字

第一种:正确写法(num[m]和nums[r]比较)

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型vector * @return int整型*/int minNumberInRotateArray(vector<int>& nums) {// write code hereint l = 0, m = 0, r = nums.size() - 1;while (l < r) { // 将结果框在[l,r]的范围内,因此当l==r时,代表就是结果m = (l + r) / 2; // 此处在l=r-1时要注意死循环,因为循环条件时l < r,如果在l根据m改变时,必须给l赋值m+1,因为直接赋值为m就会导致死循环。(此处只需要注意l=m+1,而r=m是可以的,这是因为(l+r)/2的结果可能等于l,但不可能等于r)if (nums[m] > nums[r]) {l = m + 1; // 说明m是在第一个上升数组中,且m不可能是最小值,所以m这个位置不需要保留,同时为了避免死循环,l=m+1而不是l=m} else if (nums[m] < nums[r]) {r = m; // 说明m是在第二个上升数组中,且m有可能是结果的位置,因此m必须要保留,r=m而不是r=m-1} else {r--; // 此处就是第一次没想到的解法,当nums[m] == nums[r]时,没法确定是第一个还是第二个上升数组,但能确定的是,r这个位置可以不要了,因为有m在保留着结果(m不可能等于r,因为如果m==r的话,说明l==r,那么循环就走不到这里了。为了缩小结果集范围,直接r--就可以了)}}return nums[l];}
};

但是很神奇的是,上面的代码都是和num[r]比较的,但如果像下面这么写,有些用例就是失败的
第二种错误写法:nums[m]和num[l]比较

class Solution {
public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param nums int整型vector * @return int整型*/int minNumberInRotateArray(vector<int>& nums) {// write code hereint l = 0, m = 0, r = nums.size() - 1;while (l < r) {m = (l + r) / 2;if (nums[m] > nums[l]) {l = m + 1;} else if (nums[m] < nums[l]) {r = m;} else {l++;}}return nums[l];}
};

上面的代码表明看起来是对的,但这段代码只能通过部分用例。

因为存在特殊情况,即在旋转0个数字情况下,nums[m]是一定会大于num[l],此时按照上面的代码,l=m+1,l会越加越多,离正确答案nums[0]越来越远了。

因此这就是为什么要按照第一种写法,nums[m]和num[r]进行比较。在旋转0个数字这种特殊情况,nums[m]<num[r]是永远成立的,此时的操作正好是r = m,就不会错过正确答案。
例如[1,0,1,1,1]这个输入,nums[m]和nums[l]比较这个上面的第二种代码就是错误的。
第一轮l=0,r=4,m=2。此时nums[l]==nums[r],因此l++
第二轮l=1,r=4,m=2。此时[l,r]就是[0,1,1,1]这个升序的序列了,就是上面所说的特殊场景,nums[m] > nums[l],按照第二种代码的逻辑,l = m+1,l=3。这样直接就把正确答案跳过去了。

http://www.dtcms.com/wzjs/578727.html

相关文章:

  • 摄影网站的需求分析未成年在线观看视频播放免费
  • 安徽合肥制作网站公司吗建设工程质量检测网站
  • 怀化人社网站html网站开发相关书籍
  • 合肥网站建设的公司不良网站进入窗口
  • 做白酒用哪个分类信息网站网站切换图片做背景怎么写
  • 建设网站的公司济南兴田德润o简介图片定制网站建设程序流程
  • 2345网址导航站住房和城乡建设部网站唐山
  • 网站规划设计的一般流程门户网站建设的意义
  • 易安卓做网站ui设计的发展趋势
  • 龙华做手机网站威海市临港区建设局网站
  • 北京律师网站建设网站开发语言有哪几种
  • 电子商务网站开发基本流程图app制作公司报价
  • 方法数码做的网站怎么样想做电商从哪里入手
  • 天津网站建设专家时尚网站设计教程
  • 杭州网站建设公司哪家好个人网页设计作品模板学生
  • 公司网站设计 上海网站可信度
  • 正能量软件不良网站免费入口官网建设报价
  • 济南网站建设与维护商丘做网站汉狮网络
  • 厦门网站建设案例贵州省建设学校官方网站
  • 礼品网站建设网络网站是多少钱一年
  • 内容型网站有哪些出色的网站
  • 厚街镇网站建设公司网站排名易下拉技术
  • 誉重网站建设公司福建建设执业管理中心网站
  • h5网站系统外贸网站开发公司
  • 如何利用源代码做网站网站这么做优化
  • 网站建设古典风格建设工程公司经营范围
  • 重庆金建站自动翻译wordpress中文标签别名为英文
  • 济南做网站设计淘宝网页版登陆
  • 正规品牌网站设计即墨网站建设公司
  • 网站keywords有关做美食的网站