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

大连企业信息查询系统官网杭州seo教程

大连企业信息查询系统官网,杭州seo教程,有特色的网站设计,有做任务赚钱的网站题目 有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这…

题目


有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

数据范围:1≤n≤10000,数组中任意元素的值: 0≤val≤10000

要求:空间复杂度:O(1) ,时间复杂度:O(logn)

示例1

输入:
[3,4,5,1,2]
返回值:
1

示例2

输入:
[3,100,200,3]
返回值:
3

思路


二分法:

  • mid = (start + end) / 2 为二分的中间位置。
  • mid,start,right分为三种情况:
    • nums[mid] > nums[end]时, 那么最小值一定在 [mid+1,end]区间中;
    • nums[mid] = nums[end]时,无法判断最小值在哪个区间,所以此时只能缩小end的值;
    • nums[mid] < nums[end]时,那么最小值一定在[start,mid]区间内。

解答代码


class Solution {
public:/*** @param nums int整型vector * @return int整型*/int minNumberInRotateArray(vector<int>& nums) {// write code hereint start = 0;int end = nums.size() - 1;while (start != end) {int mid = (start + end) / 2;if (nums[mid] > nums[end]) {//最小的数字在mid右边start = mid + 1;} else if (nums[mid] == nums[end]) {//无法判断,一个一个试end = end - 1;} else if (nums[mid] < nums[end]) {//最小数字要么是mid要么在mid左边end = mid;}}return nums[end];}
};
http://www.mmbaike.com/news/75433.html

相关文章:

  • 橙子建站验证码是诈骗吗seo优化关键词排名
  • 杭州制造业企业做网站免费网页模板网站
  • 代做毕业设计网站现成网上推广赚钱方法
  • 大连做网站的科技公司跨境电商靠谱吗
  • 武汉手机网站建设品牌徐州百度推广电话
  • 设计说明100字通用做专业搜索引擎优化
  • 美宜佳企业网络营销推广方式十堰seo优化方法
  • 方正集团网站是谁做的公司网站制作要多少钱
  • python做问卷调查的网站凡科官网免费制作小程序
  • 做网站要开发嘛长沙排名推广
  • 太原市城乡建设局网站怎么引流到微信呢
  • 做微商有什么好的货源网站台州seo排名外包
  • dw免费网站模板官网排名优化
  • 为什么有人做商城优惠券网站卖个人主页网页设计
  • 天河网站建设设计重庆森林
  • 专业网站制作公司排行大金seo
  • files.wordpress.com厦门网站综合优化贵吗
  • 电脑版网站制作公司腾讯广告联盟官网
  • 做生鲜的网站郴州网站建设推广公司
  • 上传资料网站优化推广网站推荐
  • 提供邢台专业做网站当日网站收录查询统计
  • 帮别人做网站市场价网络营销推广软件
  • 宁波最靠谱的网站建设seo运营专员
  • 青岛做网站自己怎么创建网站
  • 免费做app网站有哪些网店seo是什么意思
  • 石家庄网站建设联系方式软文营销的五大注意事项
  • 深圳专业网站建设制作价格低百度竞价排名背后的伦理问题
  • php体育网站模板seo优化排名价格
  • 工作做ppt课件的网站外贸推广
  • 网站建设人员最近国家新闻