博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Lintcode】寻找峰值
阅读量:4250 次
发布时间:2019-05-26

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

描述

你给出一个整数数组(size为n),其具有以下特点:

相邻位置的数字是不同的

A[0] < A[1] 并且 A[n - 2] > A[n - 1]
假定P是峰值的位置则满足A[P] > A[P-1]且A[P] > A[P+1],返回数组中任意一个峰值的位置。

java code

class Solution {    /**     * @param A: An integers array.     * @return: return any of peek positions.     */    public int findPeak(int[] A) {        // write your code here        int start = 0;        int end = A.length - 1;        int mid = 0;        while (start + 1 < end) {            mid = start + (end - start) / 2;            if (A[mid - 1] < A[mid] && A[mid] > A[mid + 1]) {                return mid;            }            if (A[mid - 1] < A[mid] && A[mid] < A[mid + 1]) { // 上升区间                start = mid;                continue;            }            if (A[mid - 1] > A[mid] && A[mid] > A[mid + 1]) { // 下降区间                end = mid;                continue;            }            start = mid;        }        if (A[start] < A[end]) {            return end;        } else {            return start;        }    }}

转载地址:http://gxkei.baihongyu.com/

你可能感兴趣的文章
STL中的RB-tree
查看>>
STL中的Sort
查看>>
LeetCode---3.TreeEasy
查看>>
基于比较的排序算法的最优下界---NlogN
查看>>
Paxos协议学习---2.由3大条件证明一致性
查看>>
Paxos协议学习---3.Paxos Made Simple
查看>>
C/C++输入输出
查看>>
泸州NGN属南气矿工程----华为s2600磁盘阵列问题解决
查看>>
泸州属南气矿----配置S2600磁盘阵列报错:There is no master controller.
查看>>
SQL 调优1
查看>>
OA报账规范(出差专用)
查看>>
生产库快速关闭数据库
查看>>
差异增量备份和累积增量备份的差别
查看>>
ASM 无法发现候选磁盘组----grid 11.2.0.3 asm 自检通不过 prvf-5184
查看>>
ASM 无法发现候选磁盘组----丢失的ASM磁盘组 ASM的磁盘组无法挂载
查看>>
Oracle 10g配置单向stream流复制,完整记录
查看>>
ORA-00845 MEMORY_TARGET not supported on this system
查看>>
ORA-00257: archiver error --11GR2 RAC 设置归档路径和开启flashback
查看>>
奕新集团项目--Oracle 源RAC ---目标 RAC GG 搭建 11.2.3 版本 双向同步
查看>>
What is SCAN in Oracle 11g R2 RAC
查看>>