[LeetCode153]Find Minimum in Rotated Sorted Array
来源:互联网 发布:阿里云免费证书配置 编辑:程序博客网 时间:2024/06/06 00:47
题目来源:https://leetcode.com/problems/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
might become 4 5 6 7 0 1 2
).
Find the minimum element.
You may assume no duplicate exists in the array.
Subscribe to see which companies asked this question
首先我们需要知道,对于一个区间A, 如果A[start] < A[stop], 那么该区间一定是有序的了。
假设在一个轮转的排序数组A, 我们首先获取中间元素的值,A[mid],mid = (start + stop) / 2。 因为数组没
有重复元素, 那么就有两种情况:
A[mid] > A[start], 那么最小值一定在右半区间, 譬如[4,5,6,7,0,1,2], 中间元素为7,7 > 4, 最小元素
一定在[7,0,1,2]这边, 于是我们继续在这个区间查找。
A[mid] < A[start], 那么最小值一定在左半区间, 譬如[7,0,1,2,4,5,6],这件元素为2,2 < 7, 我们继续
在[7,0,1,2]这个区间查找。
class Solution153{public:int findMin(vector<int> & nums){int size = nums.size(); //cout << size<<endl;if (size == 0)return 0;else if (size == 1)return nums[0];else if (size == 2)return min(nums[0], nums[1]);int left = 0;int right = size - 1;//cout << size << endl;while (left < right-1){ //注意细节 -1if (nums[left] < nums[right]){return nums[left];}int mid = (left + right) / 2;if (nums[mid] > nums[left]){left = mid + 1;}else if (nums[mid] < nums[left]){right = mid; //注意不是 mid-1}}return min(nums[left], nums[right]);}};int main(){Solution153 solution;{vector<int> vec = { 2,1 };//solution.findMin(vec);cout << solution.findMin(vec) << endl;}system("pause");return 0;}
0 0
- LeetCode153:Find Minimum in Rotated Sorted Array
- [LeetCode153]Find Minimum in Rotated Sorted Array
- leetcode153. Find Minimum in Rotated Sorted Array
- leetcode153---Find Minimum in Rotated Sorted Array(求最小者)
- LeetCode153—Find Minimum in Rotated Sorted Array
- LeetCode153. Find Minimum in Rotated Sorted Array如何用五行代码解决它
- Find Minimum in Rotated Sorted Array
- [LeetCode] Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Leetcode: Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- leetcode :Find Minimum in Rotated Sorted Array
- LeetCode:Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array II
- Android 使用SQLiteOpenHelper打开SD卡上的数据库
- Java方法excel文件转换成xml文件
- Tomorrow never knows?(C程序设计进阶第2周)
- Java设计模式(1)-单例模式
- Android:onNewIntent()触发机制及注意事项
- [LeetCode153]Find Minimum in Rotated Sorted Array
- UVA 11549-Calculator Conundrum-floyd判重
- Linux下获取时间差(毫秒级)
- ios 隐藏顶部栏
- SSIS数据转换-查找
- EL表达式(Expresion language)
- source insight 设置行数、加高亮
- Programming Elixir, Functional |> Concurrent |> Pragmatic |> Fun, Pragmatic 读书笔记
- Mac .bash_profile