153. 寻找旋转排序数组中的最小值( 154. 寻找旋转排序数组中的最小值 II )

题目:

 

思路:

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

【1.1】这种可以默认的是看作为有序的集合,并且从有序集合中找出最小值最合适的就是二分查找(其实找最大值也是可以的,因为最大值的下一位就是最小值)

【2】154. 寻找旋转排序数组中的最小值 II

代码展示:

【2】154. 寻找旋转排序数组中的最小值 II

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

//时间0 ms 击败 100%
//内存39.7 MB 击败 83.35%
class Solution {
    public int findMin(int[] nums) {
        int low = 0;
        int high = nums.length - 1;
        while (low < high) {
            int pivot = low + (high - low) / 2;
            if (nums[pivot] < nums[high]) {
                high = pivot;
            } else {
                low = pivot + 1;
            }
        }
        return nums[low];
    }
}
posted @ 2023-07-13 12:24  忧愁的chafry  阅读(7)  评论(0编辑  收藏  举报