欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-20 17:23:04
...

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

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

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

请找出其中最小的元素。

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

示例 1:

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

思路+代码+注释:

public int findMin(int[] nums) {
        /*
        思路:中间大于最右,右边小去右边找
        中间小于最右,左边小去左边找
         */
        int min=Integer.MAX_VALUE;
        int low=0;
        int high=nums.length-1;
        int mid;
        while (low<=high)
        {
            mid=(low+high)/2;
            if (nums[mid]<min)
            {
                min=nums[mid];
            }
            if (nums[mid]>nums[high])
            {
                low=mid+1;
            }else {
                high=mid-1;
            }
        }
        return min;
    }

上一篇: App Crash 详解

下一篇: