博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode_1095. Find in Mountain Array_[Binary Search]
阅读量:6802 次
发布时间:2019-06-26

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

题意:给定一个MountainArray(定义见题目),找到其中最早出现的target值的下标。

MountainArray.get() 函数调用不能超过100次。

解法:首先使用Binary Search找到mountain的peak,将array分为一个严格递增和一个严格递减的array,然后使用Binary Search。

class Solution{public:    int find_peak(MountainArray &mountainArr)    {        int l=0, r=mountainArr.length()-1;        while(l<=r)        {            int m=(l+r)/2;            int m_val=mountainArr.get(m);            int m_r_val=mountainArr.get(m+1);            if(m_val
=target) while(l<=r) { int m=(l+r)/2; int val=mountainArr.get(m); if(val==target) return m; else if(val
=target) while(l<=r) { int m=(l+r)/2; int val=mountainArr.get(m); if(val==target) return m; else if(val

 

转载于:https://www.cnblogs.com/jasonlixuetao/p/11072344.html

你可能感兴趣的文章
labview的IMAQ中sanp和grab有什么不同
查看>>
封装自己的printf函数
查看>>
[Angular-Scaled Web] 9. Control your promises with $q
查看>>
iOS常见异常Exec_Bad_Access问题解决办法
查看>>
Nginx、SSL双向认证、PHP、SOAP、Webservice、https
查看>>
优秀团队建设--美国式团队(ppt)
查看>>
Android中实现Launcher功能之一 ----- 添加快捷方式
查看>>
Excel向上取整
查看>>
[039] 微信公众帐号开发教程第15篇-自定义菜单的view类型(访问网页)
查看>>
RDIFramework.NET Web版介绍
查看>>
python的类中为什么要引入self
查看>>
用avalon实现一个完整的todomvc(带router)
查看>>
特征的转换规则 Transfer Routione
查看>>
秒杀多线程第四篇 一个经典的多线程同步问题
查看>>
一款基于css3鼠标经过圆形旋转特效
查看>>
用CIL写程序:从“call vs callvirt”看方法调用
查看>>
远程连接mysql数据库提示:ERROR 1130的解决办法
查看>>
值传递、指针传递、引用传递的区别
查看>>
无法解析的外部符号 _WinMain@16 fatal error LNK1120: 1 个无法解析的外部命令
查看>>
linux 内核代码构架图
查看>>