剑指 Offer 11. 旋转数组的最小数字 简单
剑指 Offer 11. 旋转数组的最小数字
- 题目
- 解题思路
- 方法(一)直接遍历法
- 方法(二)二分查找法
题目
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。
示例 1:输入:[3,4,5,1,2]
输出:1
示例 2:输入:[2,2,2,0,1]
输出:0
解题思路
方法(一)直接遍历法
时间复杂度O(n)
代码:
class Solution {public:int minArray(vector<int>& numbers) {int min=0;for(int i=1;i<numbers.size();i++){if(numbers[i]<numbers[min]) min=i;}return numbers[min];}
};
方法(二)二分查找法
时间复杂度O(logn)
解题思路:
- i m j分别代表最左,中,最右的值。
- 判断 m跟j的大小
如果m>j,则说明mj不在同一个序列里,所以i=m+1;
如果m<j,则说明mj在右边的序列里,最小值只能够在左边或者m,所以j=m;
如果m=j,则不能判断m在哪个序列,所以j–后继续判断。 - 最后输出m
class Solution {public:int minArray(vector<int>& numbers) {int m;int i=0;int j=numbers.size()-1;while(i<j){m=(i+j)/2;if(numbers[m]>numbers[j]) i=m+1;else if(numbers[m]<numbers[j]) j=m;else j--;}return numbers[i];}
};
剑指 Offer 11. 旋转数组的最小数字 简单相关推荐
- 《LeetCode力扣练习》剑指 Offer 11. 旋转数组的最小数字 Java
<LeetCode力扣练习>剑指 Offer 11. 旋转数组的最小数字 Java 一.资源 题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 给你一个可能存在 ...
- 剑指offer 11. 旋转数组的最小数字(很详细!)
剑指offer 11. 旋转数组的最小数字 题目 解题思路 代码 题目 解题思路 一开始,我们就能直接想到,数组找最小值,那么不轻轻松松直接遍历一遍,用一个变量记录最小值,然后直接返回不就完事了? 但 ...
- 【LeetCode】剑指 Offer 11. 旋转数组的最小数字
[LeetCode]剑指 Offer 11. 旋转数组的最小数字 文章目录 [LeetCode]剑指 Offer 11. 旋转数组的最小数字 一.遍历 二.二分法 总结 一.遍历 算法步骤: 遍历数组 ...
- 【剑指 Offe】剑指 Offer 11. 旋转数组的最小数字
目录标题 算法汇总 题目 关键点 代码 1.解体方法 - 二分法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码 ...
- 剑指offer——11.旋转数组的最小数字
题目: 题1:实现快速排序 题2:年龄排序问题. 题3:旋转数组的最小数字 知识点: 快速排序算法,参考:https://blog.csdn.net/shujuelin/article/details ...
- Leetcode 剑指 Offer 11. 旋转数组的最小数字 (每日一题 20210916)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...
- 剑指 Offer 11. 旋转数组的最小数字 LCOF
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...
- 【双百解法】剑指 Offer 11. 旋转数组的最小数字
立志用最少的代码做最高效的表达 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1 ...
- leetcode剑指 Offer 11. 旋转数组的最小数字(二分查找)
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素.例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转, ...
最新文章
- oracle存储过程dbms_output.put_line()显示打印结果
- 有理数加减乘除 计算机应用带答案,列50道有理数的混合运算(加减乘除)包括答案 初一的...
- 后台开发人员面试内容——JVM虚拟机(四)
- springmvc controller接收前端发送数组
- [转]关于内存泄露测试工具
- VB讲课笔记02:VB程序开发环境
- Jquery操作DOM节点
- 集成学习之Adaboost算法
- HTTP Cookies
- 抽象类实现接口,子类继承抽象类,这三个之间的关系?
- XidianOJ 1141 抢人头
- PolarDB-X 一致性共识协议 (X-Paxos)
- CC2541蓝牙串口乱码解决
- Flex布局和gird布局
- 完美解决iPhone自带的邮箱连接outlook后无法发送邮件问题
- 因子完备数c语言,编写函数输出完备数及其所有约数
- Web scraper使用教程-基本用法
- 高德地图的circle圈
- redis的hash怎么实现以及 rehash过程是怎样的?和JavaHashMap的rehash有什么区别,与ConcurrentHashMap扩容的策略比较?
- Excel中VLOOKUP函数简易使用——精确匹配或近似匹配数据
热门文章
- 那些年我们踩到过的坑(二):3.1 版 MultiThreadedHttpConnectionManager 未releaseConnection导致应用服务器宕机...
- javascript中错误使用var造成undefined
- 查询所有的存储过程哪些中包含某个字符串
- [codeigniter]CI中使用pChart绘制图表,已测通过
- 配置 Keepalived + LVS-DR模式, 实现高可用和负载均衡
- Linux系统命令三剑客之 awk
- 摩卡业务服务管理 全面彰显强大产业推动优势——神华集团神东煤炭分公司
- JS替换空格回车换行符
- 趁有空,再了解一下GROOVY中关于类的通例
- java 风格的正则表达式 vs Perl风格的正则表达式