public class Solution {public static Integer findMaxNum(int[] nums) {if (nums == null || nums.length == 0) {return null;}int len = nums.length;int i = 0;int j = len - 1;while (i <= j) {int mid = (i + j) >> 1;int midNum = nums[mid];int leftNum = mid >= 1 ? nums[mid - 1] : midNum;int rightNum = mid <= len - 2 ? nums[mid + 1] : midNum;if (midNum >= leftNum && midNum >= rightNum) {return midNum;}if (leftNum <= midNum && midNum <= rightNum) {i = mid + 1;}if (leftNum >= midNum && midNum >= rightNum) {j = mid - 1;}}return null;}public int findPeakElement(int[] nums) {int i = 0, j = nums.length - 1;while (i < j) {int mid = (i + j) >> 1;if (nums[mid] > nums[mid + 1])j = mid;elsei = mid + 1;}return i;}public static void main(String[] args) {int[][] testArray = {{1},{1, 2},{1, 2, 3},{3, 2, 1},{1, 2, 3, 4, 3, 2, 1},{1, 9, 2},{1, 9, 8, 7, 6, 5},{1, 2, 3, 8, 7}};for (int[] nums : testArray) {System.out.println(findMaxNum(nums));}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!