LeetCode OJ ——Find Minimum in Rotated Sorted Array
来源:互联网 发布:医疗大数据公司排名 编辑:程序博客网 时间:2024/04/30 12:58
题目:
代码:
class Solution {public: int findMin(vector<int>& nums) { int left, right, medium; left = 1; //区间下标从1~nums.size() right = nums.size(); medium = (nums.size() % 2 == 0) ? nums.size() / 2 : nums.size() / 2 + 1; while (1) { if (right == left ) //寻找的区间只剩下一个元素,表示其他所有元素此前都被认定为非最小元素,故此元素为最小 { return nums[medium - 1]; //break; } if (nums[medium - 1] > nums[medium]) //前一个数比其相邻的后一个数大,则后一个数一定是最小的元素 { return nums[medium]; //break; } if (nums[medium-1] < nums[right-1]){ //如果medium < right,则将搜索范围缩小至左区间 right = medium; medium = ((right - left + 1) % 2 == 0) ? (right - left + 1) / 2 : (right - left + 1) / 2 + 1; } else{ //如果medium > right,则将搜索范围缩小至右区间 left = medium; medium = ((right - left + 1) % 2 == 0) ? (right - left + 1) / 2 : (right - left + 1) / 2 + 1; medium = medium + left - 1; } } }};
结果:
思路:
(1)既然是排序好的数字,从中间某处旋转一下,那么,从头往后找肯定费时间。,这里采用类似折半的方式可以很快速的缩小查找区间。
具体思路以一个实例进行解说:
0 0
- LeetCode OJ ——Find Minimum in Rotated Sorted Array
- [LeetCode OJ]Find Minimum in Rotated Sorted Array
- LeetCode OJ Find Minimum in Rotated Sorted Array II
- LeetCode OJ Find Minimum in Rotated Sorted Array
- <LeetCode OJ> 153. Find Minimum in Rotated Sorted Array
- [LeetCode OJ]Find Minimum in Rotated Sorted Array
- leetcode oj java Find Minimum in Rotated Sorted Array
- LeetCode——Find Minimum in Rotated Sorted Array
- leetcode——Find Minimum in Rotated Sorted Array II
- LeetCode——Find Minimum in Rotated Sorted Array
- leetcode 153 —— Find Minimum in Rotated Sorted Array
- leetcode——Find Minimum in Rotated Sorted Array II
- LeetCode—Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array—LeetCode
- Leetcode—154. Find Minimum in Rotated Sorted Array II
- [LeetCode] Find Minimum in Rotated Sorted Array
- Leetcode: Find Minimum in Rotated Sorted Array
- leetcode :Find Minimum in Rotated Sorted Array
- C++ 学习(虚基类)
- FindBugs插件的安装与使用
- SDWebImage 第三方框架
- 安卓学习知识点总结一
- 源码解析Volley框架
- LeetCode OJ ——Find Minimum in Rotated Sorted Array
- 运行循环
- [leetcode]Remove Element
- js 字符串转日期
- C语言学习web服务器小实例
- 排序算法的时间复杂度
- ubuntu14.04系统nodejs express开发教程第二篇:添加controllers && services
- iOS 开发、测试、生产证书的创建
- iOS 9 Storyboard 教程(二上)