852. 山脉数组的峰顶索引
Posted lgz0921
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了852. 山脉数组的峰顶索引相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/
思路:二分一个位置,比较该位置的数与它左右的位置的数的大小。比较方法:见代码里面的两个if语句即可~~~~
上代码:
class Solution {
fun peakIndexInMountainArray(arr: IntArray): Int {
var l = 0
var r = arr.size - 1
while (l < r) {
val mid = l + r shr 1
if (mid + 1 < arr.size && arr[mid] > arr[mid + 1]) {
r = mid
}
if (mid - 1 >= 0 && arr[mid] > arr[mid - 1]) {
l = mid
}
}
return l
}
}
仔细想一下,其实不需要太多细节~~,上面的是对的,下面这个减少了判断细节的写法也是对的哦~~~~
上代码:
class Solution {
fun peakIndexInMountainArray(arr: IntArray): Int {
var l = 0
var r = arr.size - 1
while (l < r) {
val mid = l + r shr 1
if (arr[mid] > arr[mid + 1]) {
r = mid
} else {
l = mid + 1
}
}
return l
}
}
以上是关于852. 山脉数组的峰顶索引的主要内容,如果未能解决你的问题,请参考以下文章
Leetcode刷题Python852. 山脉数组的峰顶索引