c_cpp 153.在旋转分类数组中查找最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 153.在旋转分类数组中查找最小值相关的知识,希望对你有一定的参考价值。

class Solution {
public:
    int findMin(vector<int>& nums) {
        if(nums.size() <= 1)
            return nums[0];
        for(int i = 0;i < nums.size()-1;i++){
            if(nums[i+1] < nums[i])
                return nums[i+1];
        }
        return nums[0];
    }
};
//使用二分法进行查找
class Solution {
public:
    int findMin(vector<int>& nums) {
        if(nums.size() <= 1)
            return nums[0];
        int start = 0;
        int end = nums.size() - 1;
        int mid = start;
        
        while(nums[start] >= nums[end]){
            if(end - start == 1){
                mid = end;
                break;
            }
            mid = (start + end)/2;
            if(nums[mid] >= nums[start])
                start = mid;
            else if(nums[mid] <= nums[end])
                end = mid;
        }
        
        return nums[mid];
    }
};
//0ms 最优算法

class Solution {
public:
    int findMin(vector<int>& nums) {
        int start=0,end=nums.size()-1;
        
        while (start<end) {
            if (nums[start]<nums[end])
                return nums[start];
            
            int mid = (start+end)/2;
            
            if (nums[mid]>=nums[start]) {
                start = mid+1;
            } else {
                end = mid;
            }
        }
        
        return nums[start];
    }
};

以上是关于c_cpp 153.在旋转分类数组中查找最小值的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode: 153. 寻找旋转排序数组中的最小值(二分查找)

153. 寻找旋转排序数组中的最小值-二分查找

Leetcode No.153 寻找旋转排序数组中的最小值(二分查找)

153. 寻找旋转排序数组中的最小值

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

二分查找4寻找旋转排序数组中的最小值 II(hard)