153.leetcode Find Minimum in Rotated Sorted Array(medium)[有序数组 二分查找]
2016-08-05 09:58
423 查看
Suppose a sorted array is rotated at some pivot unknown to you beforehand.
(i.e.,
Find the minimum element.
You may assume no duplicate exists in the array.
要找旋转之后的数组中的最小的数,其实过程类似于二分查找,先比较第一个和最后一个元素,如果第一个元素小于最后一个元素,那么整体最小的就是第一个元素。否则就找到中间元素,如果中间元素比大于start那么最下元素在middle与last中,否则在start与middle中。
(i.e.,
0 1 2 4 5 6 7might become
4 5 6 7 0 1 2).
Find the minimum element.
You may assume no duplicate exists in the array.
要找旋转之后的数组中的最小的数,其实过程类似于二分查找,先比较第一个和最后一个元素,如果第一个元素小于最后一个元素,那么整体最小的就是第一个元素。否则就找到中间元素,如果中间元素比大于start那么最下元素在middle与last中,否则在start与middle中。
class Solution { public: int findMin(vector<int>& nums) { if(nums.size()==1) return nums[0]; int start = 0; int last = nums.size()-1; int middle = 0; if(nums[start]<nums[last]) return nums[middle]; while(nums[start]>= nums[last]) { if(start+1 == last) return nums[last]; int middle = (last+start)/2; if(nums[middle]>nums[start]) start = middle; if(nums[middle]<nums[last]) last = middle; } return 0; } };
相关文章推荐
- 154.leetcode Find Minimum in Rotated Sorted Array II(hard)[排序数组 重复元素 二分查找]
- LeetCode-Find Minimum in Rotated Sorted Array II-旋转排序数组找最小-二分查找
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array (查找旋转有序数组中的最小值)
- 字符串算法——查找有序数组旋转后最小值(有重复元素)(Find Minimum in Rotated Sorted Array II)
- LeetCode OJ 之 Find Minimum in Rotated Sorted Array II(查找旋转有序数组中的最小值 - 二)
- 字符串算法——查找有序数组旋转后的最小值(无重复元素)(Find Minimum in Rotated Sorted Array)
- Find Minimum in Rotated Sorted Array I&&II——二分查找的变形
- Leetcode|Find Minimum in Rotated Sorted Array[二分查找]
- Find Minimum in Rotated Sorted Array 2 寻找旋转有序数组的最小值之二
- [LeetCode] Find Minimum in Rotated Sorted Array II 寻找旋转有序数组的最小值之二
- [Java语言] [Leetcode] Find Minimum in Rotated Sorted Array 找旋转有序数组的最小值
- 循环有序数组中的二分查找 Search in a rotated sorted array
- 寻找循环有序数组的最小值 Find Minimum in Rotated Sorted Array
- Find Minimum in Rotated Sorted Array 循环数组中查找最小的数
- 循环有序数组中的二分查找 Search in a rotated sorted array
- LeetCode-153:Find Minimum in Rotated Sorted Array (可能旋转的排序数组中的最小值) -- medium
- leedcode_153题——Find Minimum in Rotated Sorted Array(二分查找)
- Search in Rotated Sorted Array 在旋转过的有序数组中进行二分查找 重点看解法二 三(重重)
- [C++]LeetCode: 132 Find Minimum in Rotated Sorted Array II (二分查找)
- Find Minimum in Rotated Sorted Array(旋转数组的最小数字)