本文主要是介绍Leetcode#153. 寻找旋转排序数组中的最小值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
解题思路:
- 思路一:暴力搜索,后一个元素比前一个小,返回后一个元素;如果没有,说明最小的元素在第一个;
- 思路二:二分搜索,
//思路一
class Solution {
public:int findMin(vector<int>& nums) {if(nums.size() == 1)return nums[0];for(int i = 1; i < nums.size(); ++i){if(nums[i] < nums[i - 1])return nums[i];}return nums[0];}
};
//思路二
class Solution {
public:int findMin(vector<int>& nums) {if(nums.size() == 1)return nums[0];int left = 0;int right = nums.size() - 1;if(nums[left] < nums[right])return nums[0];while(left < right){int mid = (left + right) / 2;if(nums[mid] > nums[right])left = mid + 1;elseright = mid;}return nums[left];}
};
这篇关于Leetcode#153. 寻找旋转排序数组中的最小值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!