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

最新新闻热点事件短篇郑州seo优化顾问热狗

最新新闻热点事件短篇,郑州seo优化顾问热狗,网群企业网站管理系统,有没有专门做装修的网站链接: 剑指 Offer 11. 旋转数组的最小数字 154. 寻找旋转排序数组中的最小值 II 题意: 找一个数组里的最小值,这个数组是有非递减数组旋转而来的,旋转n次表示把前n个数移动到数组末尾 解: 很有趣的二分&#xff…

链接:

剑指 Offer 11. 旋转数组的最小数字

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

题意:

找一个数组里的最小值,这个数组是有非递减数组旋转而来的,旋转n次表示把前n个数移动到数组末尾

解:

很有趣的二分,由于是非递减数组旋转而来,所以最小值往右一定小于等于最小值左侧,可以以此进行二分

如果这个数字大于nums[r],那么他一定属于最小值左侧,小于nums[r]一定属于右侧

But:唯一要注意等于的情况,因为存在重复数字,所以有可能 所有/大部分数字都是同一个,则时候无法判断在最小值左侧还是右侧,只能减小右端点。也不能和左端点比较/增大左端点,因为有可能是旋转n次转回了原数组(前面一段一个是个非递减序列,一开始的L=0算是前面一段的最小值)

一边是Easy一边是Hard是吧,真有你的嗷leetcode(大概是暴力能过的原因=-=)

实际代码:

#include<bits/stdc++.h>
using namespace std;
int findMin(vector<int>& numbers)
{int lg=numbers.size(),l=0,r=lg-1;while(l<r){int mid=l+((r-l)>>1);if(numbers[mid]==numbers[r]) r--;else if(numbers[mid]<numbers[r]) r=mid;else l=mid+1;}return numbers[l];
}
int minArray(vector<int>& numbers)
{int lg=numbers.size(),l=0,r=lg-1;while(l<r){int mid=l+((r-l)>>1);if(numbers[mid]==numbers[r]) r--;else if(numbers[mid]<numbers[r]) r=mid;else l=mid+1;}return numbers[l];
}
int main()
{vector<int> numbers;int num;while(cin>>num) numbers.push_back(num);int ans=minArray(numbers);cout<<ans<<endl;return 0;
}

限制:

  • n == numbers.length
  • 1 <= n <= 5000
  • -5000 <= numbers[i] <= 5000
  • numbers 原来是一个升序排序的数组,并进行了 1 至 n 次旋转
http://www.yidumall.com/news/37958.html

相关文章:

  • 太原网站建设 网站制作seo网站优化价格
  • 定州网站建设推广普通话奋进新征程手抄报
  • 深圳建站公司好坏网站搭建需要多少钱
  • 上海一家做服饰包鞋穿上用品的网站中国企业500强
  • 链天网站建设小红书推广渠道
  • 网站后台怎么用福州seo扣费
  • 购物网站建设怎么样十大中文网站排名
  • 做网站需要注意多少页搜狗seo培训
  • 淘宝做导航网站好怎么做网站模板
  • 最有效的网站推广设计外贸网站都有哪些
  • 魔兽做宏网站广告公司业务推广
  • 手机网站设计费用简单的网页设计作品
  • 邯郸市网站建设浏览器网址
  • 宜昌网站seo收费十个有创意的线上活动
  • 十大高端全屋定制seo的中文含义是什么意思
  • 网站内连接网络营销服务公司有哪些
  • 怎样做网络推广优化西安seo优化工作室
  • 网站制作可以卖多少钱如何编写一个网站
  • 一个专门做破解的网站品牌宣传推广方案
  • 关键词搜索排名网站快速排名优化
  • 设计师网站家装自动seo网站源码
  • 天津市建设与管理局网站本周国内新闻
  • icp备案和icp许可证区别北京关键词seo
  • 济南平面设计公司前十名广安seo外包
  • 网站搭建系统都有哪些windows优化大师破解版
  • 网站建设合同网站建设公司重庆seo网站系统
  • 网站建设费用价格网络培训中心
  • 模板搭建网站怎么查网站是不是正规
  • 学校网站建设栏目完整的网页设计代码
  • 湖北省建设工程教育协会网站搜索引擎和浏览器