热门

最新

红包

立Flag

投票

同城

我的

发布
wzh18907434168
Eliooooooo
2 年前
truewzh18907434168

每日一题
## [LCR 069. 山脉数组的峰顶索引]()

符合下列属性的数组 `arr` 称为 **山峰数组**(**山脉数组)** :

- `arr.length >= 3`

- 存在

i(0 < i < arr.length - 1)使得:

- `arr[0] < arr[1] < ... arr[i-1] < arr[i] `
- `arr[i] > arr[i+1] > ... > arr[arr.length - 1]`

给定由整数组成的山峰数组 `arr` ,返回任何满足 `arr[0] < arr[1] < ... arr[i - 1] < arr[i] > arr[i + 1] > ... > arr[arr.length - 1]` 的下标 `i` ,即山峰顶部。



**示例 1:**

```
输入:arr = [0,1,0]
输出:1
```

**示例 2:**

```
输入:arr = [1,3,5,4,2]
输出:2
```

**示例 3:**

```
输入:arr = [0,10,5,2]
输出:1
```


解法一:二分法

时间复杂度:O(logn)

空间复杂度:O(1)
class Solution {
public:
int peakIndexInMountainArray(vector<int>& arr) {
int left = 1, right = arr.size() - 2;
while(left < right)
{
int mid = left + (right - left) / 2;
if(arr[mid - 1] > arr[mid]) right = mid - 1;
else if(arr[mid + 1] > arr[mid]) left = mid + 1;
else return mid;
}
return left;
}
};

山脉数组的峰顶索引

每日学习打卡
CSDN App 扫码分享
分享
评论
1
打赏
  • 复制链接
  • 举报
下一条:
好羡慕你们的博客等级!希望你们坚持//@认真写博客的夏目浅石. :羡慕哥有孩子了,幸福的家庭,我连女孩子的手都没摸过呢,下一年就20了呜呜呜没谈过
立即登录