1. 题目
符合下列属性的数组 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.1 示例
- 输入:
arr = [0, 1, 0] - 输出:
1
1
1
- 输入:
arr = [0, 2, 1, 0] - 输出:
1
1
1
- 输入:
arr = [0, 10, 5, 2] - 输出:
1
1
1
- 输入:
arr = [3, 4, 5, 1] - 输出:
2
2
2
- 输入:
arr = [24, 69, 100, 99, 79, 78, 67, 36, 26, 19] - 输出:
2
2
2
1.2 说明
1.3 提示
-
3
≤
a
r
r
.
l
e
n
g
t
h
≤
1
0
4
3 \le arr.length \le 10^4
3≤arr.length≤104
-
0
≤
a
r
r
[
i
]
≤
1
0
6
0 \le arr[i] \le 10^6
0≤arr[i]≤106
- 题目数据保证
arr 是一个山脉数组
1.4 进阶
很容易想到时间复杂度
O
(
n
)
O(n)
O(n) 的解决方案,你可以设计一个
O
(
l
o
g
(
n
)
)
O(log(n))
O(log(n)) 的解决方案吗?
2. 解法一
2.1 分析
2.2 解答
|