博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 162. Find Peak Element
阅读量:5289 次
发布时间:2019-06-14

本文共 1127 字,大约阅读时间需要 3 分钟。

原题链接在这里:

题目:

A peak element is an element that is greater than its neighbors.

Given an input array where num[i] ≠ num[i+1], find a peak element and return its index.

The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

You may imagine that num[-1] = num[n] = -∞.

For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.

题解:

二分法, 如何判断接下来应该找左边还是右边呢。依据其实是比较nums[m] 和 nums[m+1], 若是nums[m] < nums[m+1], peak 一定会出现在mid 右边,不包括mid.

反之peak 就会出现在mid 左边, 但要包括mid.

Time Complexity: O(logn). Space: O(1).

AC Java:

1 class Solution { 2     public int findPeakElement(int[] nums) { 3         if(nums == null || nums.length == 0){ 4             return -1; 5         } 6          7         int l = 0; 8         int r = nums.length - 1; 9         while(l < r){10             int mid = l + (r-l)/2;11             if(nums[mid] < nums[mid+1]){12                 l = mid+1;13             }else{14                 r = mid;15             }16         }17         18         return r;19     }20 }

 

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/4877146.html

你可能感兴趣的文章
程序员的“机械同感”
查看>>
RAP在centos上的部署
查看>>
java 8 新特性
查看>>
在16aspx.com上下了一个简单商品房销售系统源码,怎么修改它的默认登录名和密码...
查看>>
VS2015 create a C++ console application based on WinRT
查看>>
c++回调函数
查看>>
神经网络初探
查看>>
linux下Rtree的安装
查看>>
【Java】 剑指offer(53-2) 0到n-1中缺失的数字
查看>>
Delphi中ListView类的用法
查看>>
POJ 1202 Family 概率,DP,高精 难度:2
查看>>
jquery元素查找方法
查看>>
纯代码Tom
查看>>
C Looooops(poj2115+扩展欧几里德)
查看>>
Monkey测试
查看>>
二、Statement 、PreparedStatement 、CallableStatement
查看>>
selenium学习
查看>>
bzoj3110: [Zjoi2013]K大数查询 【树套树,标记永久化】
查看>>
nodejs介绍
查看>>
TCP心跳包
查看>>