局部最小值问题:在一个相邻位置的数不相等的数组中寻找任意一个局部最小值

Posted 硬盘红了

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了局部最小值问题:在一个相邻位置的数不相等的数组中寻找任意一个局部最小值相关的知识,希望对你有一定的参考价值。

public class BSAwesome {
    public static int getLessIndex(int[] arr){
        if (arr==null || arr.length ==0){
            return -1;
        }
        if (arr[0] < arr[1]){
            return 0;
        }
        if (arr[arr.length-1] < arr[arr.length-2]){
            return arr.length-1;
        }
        int left = 1;
        int right = arr.length - 2;
        int mid = 0;
        while (left < right){
            mid = (left + right) / 2;
            if (arr[mid] > arr[mid - 1]){
                right = mid - 1;
            }else if (arr[mid] > arr[mid + 1]){
                left = mid + 1;
            }else
                return mid;
        }
        return left;
    }

    public static void main(String[] args) {
        int[] arr = {1,0,3,5,6,8};
        System.out.println("数组中某一个局部最小值的位置:"+ getLessIndex(arr));
    }
}

 

用例运行结果:

以上是关于局部最小值问题:在一个相邻位置的数不相等的数组中寻找任意一个局部最小值的主要内容,如果未能解决你的问题,请参考以下文章

每日一题局部最小值问题

希尔排序

noip模拟局部最小值

2022-05-05:给定一个正数num,要返回一个大于num的数,并且每一位和相邻位的数字不能相等. 返回达标的数字中,最小的那个。 来自微软。

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

局部最小值位置