LeetCode(153) Find Minimum in Rotated Sorted Array
题目
Total Accepted: 65121 Total Submissions: 190974 Difficulty: Medium
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e., 0 1 2 4 5 6 7 might become 4 5 6 7 0 1 2).
Find the minimum element.
You may assume no duplicate exists in the array.
分析
二分搜索的扩展应用。
寻找一个有序序列经旋转后的最小元素。
关键是掌握好,有序序列旋转后的元素之间的关系。
AC代码
class Solution {
public:
int findMin(vector<int>& nums) {
if (nums.empty())
return INT_MIN;
//元素个数
int size = nums.size();
int lhs = 0, rhs = size - 1;
while (lhs <= rhs)
{
//递增状态,返回低位值
if (nums[lhs] <= nums[rhs])
return nums[lhs];
//相邻,返回较小值
else if (rhs - lhs == 1)
return nums[lhs] < nums[rhs] ? nums[lhs] : nums[rhs];
//判断子序列
int mid = (lhs + rhs) / 2;
//右侧递增,则最小值位于左半部分
if (nums[mid] < nums[rhs])
{
rhs = mid;
}
//否则,最小值位于右半部分
else{
lhs = mid + 1;
}
}//while
}
//优化函数
int findMin2(vector<int>& nums)
{
if (nums.size() == 1)
return nums[0];
int lhs = 0, rhs = nums.size() - 1;
while (nums[lhs] > nums[rhs])
{
int mid = (lhs + rhs) / 2;
if (nums[mid] > nums[rhs])
lhs = mid + 1;
else
rhs = mid;
}//while
return nums[lhs];
}
};
LeetCode(153) Find Minimum in Rotated Sorted Array的更多相关文章
- LeetCode(154) Find Minimum in Rotated Sorted Array II
题目 Follow up for "Find Minimum in Rotated Sorted Array": What if duplicates are allowed? W ...
- (LeetCode 153)Find Minimum in Rotated Sorted Array
Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 migh ...
- [LeetCode]题解(python):033-Search in Rotated Sorted Array
题目来源 https://leetcode.com/problems/search-in-rotated-sorted-array/ Suppose a sorted array is rotated ...
- leetcode解题报告(3):Search in Rotated Sorted Array
描述 Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7 m ...
- LeetCode 153.Find Minimum in Rotated Sorted Array(M)(P)
题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...
- LeetCode 154.Find Minimum in Rotated Sorted Array II(H)(P)
题目: Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand. ( ...
- Leetcode之二分法专题-153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)
Leetcode之二分法专题-153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array) 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ...
- 【LeetCode】153. Find Minimum in Rotated Sorted Array 解题报告(Python)
[LeetCode]153. Find Minimum in Rotated Sorted Array 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode. ...
- Leetcode之二分法专题-154. 寻找旋转排序数组中的最小值 II(Find Minimum in Rotated Sorted Array II)
Leetcode之二分法专题-154. 寻找旋转排序数组中的最小值 II(Find Minimum in Rotated Sorted Array II) 假设按照升序排序的数组在预先未知的某个点上进 ...
随机推荐
- EM算法(徐亦达)笔记
- Day2课后作业:三级菜单简单版
menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, '谷歌':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{ ...
- Codeforces 1132E(转化+dp)
要点 假设第i个最后总共选的值为ci,不妨把它分成两部分:\[c_i=cnt'_i*L+q_i\]\[L=840,\ 0<=q_i<L\]又可以写成:\[c_i=cnt_1*i+cnt_2 ...
- FTP任务(重点看断点续传)
一.FTP任务目录: 1. 多用户同时登陆: socketserver 2. 用户登陆,加密认证: md5加密 3. 上传/下载文件,保证文件一致性:md5摘要 4. 传输过程中现实进度条 5 ...
- dubbo-springboot
一.服务提供者boot-user-service-provider 服务提供者boot-user-service-provider代码结构如下: 1.服务提供者boot-user-service-pr ...
- [已读]编写高质量代码--Web前端开发修炼之道
我觉得还蛮实用的一本,推荐看看,主要涉及到这些: 标签语义化.css模块化. css的一些东西,比如haslayout 文档流,还有如何实现水平.垂直居中. js代码组织与js分层.js压缩 编码规范 ...
- audio、video的控制
W3C上面给的是js控制相关的播放与暂停,不过在实际开发中我们多会选择JQ来操作的,毕竟方便很多,而play()和pause()用于js play并不是jQuery的函数,而是DOM元素的函数,所以我 ...
- [转载]深入理解Java 8 Lambda
原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language-features/ 深入理解Java 8 Lambda(语言篇——lam ...
- jquery select取option的value值发生变化事件
html代码如下所示: <div id = "schedule"> <label>是否设置:</label> <select name=& ...
- Visual Studio使用技巧学习
F7: 代码窗口 Shift+F7: 对象窗口 F4: 属性窗口 闪电图标: 对象的事件 F5: 编译及运行 Ctrl+F5: 编译及运行(不调试) svm+两次Tab: s ...