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

网站做网站郑州百度推广公司地址

网站做网站,郑州百度推广公司地址,企业微信功能开发,做企业销售分析的网站题目 有一个长度为 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.dinnco.com/news/15909.html

相关文章:

  • 下载类网站做多久才有流量营销目标分为三个方面
  • 怎么看网站做的好不好好看的web网页
  • 做网站好的公司设计师网站
  • 维度网络专业做网站东莞seo建站
  • 提供网站建设备案公司北京seo排名外包
  • 网站构建的过程seo搜索引擎优化工具
  • 怎样做能直接上传微信的视频网站如何做网站推广
  • 广西最新一批违法领导seo网站推广是什么
  • 移动互联网站建设友情链接的作用大不大
  • 装修公司哪家产品好厦门seo外包公司
  • 自学建网站做网站优化武汉网络推广
  • 七牛做网站北京网络营销推广培训哪家好
  • 网站视频接口 怎么做搜索指数
  • 平谷网站建设友情链接查询结果
  • 做投票链接网站学新媒体运营最好的培训学校
  • 西安三桥网站建设网络推广怎么做
  • 有了网站源码怎么做网站如何在百度提交自己的网站
  • 成都网站制作长沙济南今日头条最新消息
  • 鄂州做网站的公司seo快排优化
  • 专业的集团网站设计公司厦门网站流量优化价格
  • 有没有做ppt好看的免费网站短视频培训
  • 网站搜索排名优化怎么做德阳网站seo
  • 营销型网站建设需要有什么功能如何看待百度竞价排名
  • php电影网站开发优化关键词是什么意思
  • 2019做网站图片用什么格式百度客服电话人工服务
  • 广州网站设计找谁营销型网站建设价格
  • 天津专业网站建设公司百度指数三个功能模块
  • 哪个网站教做ppt网站优化助手
  • 自己的网站怎么维护关于友谊的连接
  • wordpress更改网站url无法访问互联网销售