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

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

The ticky part for this question is :

mid == 0     num[mid] < num[mid+1]   start = mid + 1;

0 < mid < len num[mid-1] < num[mid] < num[mid+1] start = mid + 1;

0 < mid < len num[mid-1] > num[mid] > num[mid+1] end = mid - 1;

mid = l num[mid] < num[mid-1] end = mid - 1;

 

But after we do the comparison, we can simplify the condition:

mid == 0 ||  mid < length-1 && num[mid] < num[mid + 1]   start = mid + 1

mid == length-1 || mid > 0 && num[mid] > num[mid - 1] end = mid - 1

 

1 class Solution { 2 public: 3     int findPeakElement(const vector
&num) { 4 int start = 0, end = num.size()-1, mid = 0; 5 while (start <= end) { 6 mid = (start + end)/2; 7 if ((mid == 0 || num[mid] > num[mid-1]) && 8 (mid == num.size()-1 || num[mid] > num[mid+1])) { 9 return mid;10 } else if (mid == 0 || (mid < num.size()-1 && num[mid] < num[mid+1])){11 start = mid + 1;12 } else {13 end = mid - 1;14 }15 }16 }17 };

 

转载于:https://www.cnblogs.com/shuashuashua/p/4349581.html

你可能感兴趣的文章
Key Lookup开销过大导致聚集索引扫描
查看>>
CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体
查看>>
Java全栈程序员之04:Ubuntu下安装MySQL、注册服务及Navcat
查看>>
读吴恩达算-EM算法笔记
查看>>
Bug是一种财富-------研发同学的错题集、测试同学的遗漏用例集
查看>>
Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse
查看>>
服务测试碰钉子Server GC
查看>>
go关键字之select
查看>>
国内医保控费公司简单比较
查看>>
不错的网站模块地址
查看>>
uni - 介绍
查看>>
C# 编程指南
查看>>
python的with和__enter__ 、 __exit__
查看>>
现代工作观
查看>>
C++入门--关于标准的C++程序
查看>>
一个简单的ajax
查看>>
(筆記) initial的幾個特色 (SOC) (Verilog)
查看>>
CSS学习(四)CSS选择符详解
查看>>
IPMSG
查看>>
正则 截取固定开头结尾字符串中间的字符串
查看>>