失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > leetcode 153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)

leetcode 153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)

时间:2021-12-11 21:22:41

相关推荐

leetcode 153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)

目录

题目描述:示例 1:示例 2:解法:

题目描述:

假设按照升序排序的数组在预先未知的某个点上进行了旋转。

( 例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。

请找出其中最小的元素。

你可以假设数组中不存在重复元素。

示例 1:

输入: [3,4,5,1,2]输出: 1

示例 2:

输入: [4,5,6,7,0,1,2]输出: 0

解法:

class Solution {public:int findMin(vector<int>& nums) {// to find the rotated pointint sz = nums.size();if(sz == 0){return -1;}else if(sz == 1){return nums[0];}else{int l = 0, r = sz-1;if(nums[l] < nums[r]){// the whole list is ascendreturn nums[l];}int mid = 0;while(r - l > 1){ // loop untill left two elementsmid = l + (r - l)/2;// only two cases: left part ascend or right part ascendif(nums[mid] > nums[l]){l = mid;}else if(nums[mid] < nums[r]){r = mid;}}return min(nums[l], nums[r]);}}};

如果觉得《leetcode 153. 寻找旋转排序数组中的最小值(Find Minimum in Rotated Sorted Array)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。