一个数组先升序再降序,用最优时间复杂度,求最大值?例如[1,2,2,2,2,3,1]

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 2, 2, 2, 3, 1};
        System.out.println(getMax(arr));
    }

    public static int getMax(int[] arr) {
        int left = 0;
        int right = arr.length - 1;
        while (left < right) {
            int mid = left + ((right - left) >> 1);
            if (arr[mid] > arr[mid + 1]) {
                right = mid;
            } else {
                left = mid + 1;
            }
        }
        return arr[left];
    }
}
posted @ 2021-11-10 18:35  笨笨韩  阅读(146)  评论(0)    收藏  举报