Leetcode 162. Find Peak Element

来源:互联网 发布:茂木忍 男装 知乎 编辑:程序博客网 时间:2024/05/17 02:52

O(n) approach

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

O(logn) approach (binary search)

public class Solution {    public int findPeakElement(int[] nums) {        int low=0, high=nums.length-1, mid;        while (low < high) {            mid = (low+high)/2;            // peak on the right b/c num[n] = -∞            if (nums[mid] < nums[mid+1]) low = mid + 1;            // peak on the left include mid b/c num[-1] = -∞            else high = mid;        }        return low;    }}


0 0
原创粉丝点击