【Leetcode】153. Find Minimum in Rotated Sorted Array

题目地址:

https://leetcode.com/problems/find-minimum-in-rotated-sorted-array/submissions/

寻找旋转数组中的最小值。题目可以转述为,寻找数组中从左向右第一个小于等于nums[len - 1]的数。可以利用二分法。

public class Solution {
    public int findMin(int[] nums) {
        if (nums == null || nums.length == 0) {
            return -1;
        }
        
        int l = 0, r = nums.length - 1;
        int len = nums.length;
        while (l < r) {
            int mid = l + ((r - l) >> 1);
            if (nums[mid] <= nums[len - 1]) {
                r = mid;
            } else {
                l = mid + 1;
            }
        }
        
        return nums[l];
    }
}

时间复杂度 O ( log n ) O(\log n)

发布了86 篇原创文章 · 获赞 0 · 访问量 1209

猜你喜欢

转载自blog.csdn.net/qq_46105170/article/details/104012699
今日推荐