162 Find Peak Element

Java 方法一: 一遍循环

class Solution {
    public int findPeakElement(int[] nums) {
        for(int i = 0; i < nums.length - 1; i ++){
            if (nums[i] > nums[i + 1])
                return i;
        }
        return nums.length - 1;
    }
}

Java 方法二: 改进版的二分查找

public class Solution {
    public int findPeakElement(int[] nums) {
        return search(nums, 0, nums.length - 1);
    }
    public int search(int[] nums, int l, int r) {
        if (l == r)
            return l;
        int mid = (l + r) / 2;
        if (nums[mid] > nums[mid + 1])
            return search(nums, l, mid);
        return search(nums, mid + 1, r);
    }
}

results matching ""

    No results matching ""