LeetCode第852题,难度是简单。最近这几题,我一看题解里面没有比我更优秀的,果断把自己的题解写了上去,美滋滋。
原题地址:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/
题目描述:
我们把符合下列属性的数组 A 称作山脉:
A.length >= 3
存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1]
给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A.length - 1] 的 i 的值。
示例 1:
输入:[0,1,0]
输出:1
示例 2:
输入:[0,2,1,0]
输出:1
提示:
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
这题我看着自己的代码想了好一会儿,后来发现,根据题意可得,它就是让我们去找到第一个值变小的索引。所以就从头遍历数组,然后找到值变小的index,那么last也就是上一个元素,就是封顶了。
中文官网题解:
https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/solution/
个人题解:
class Solution {
public int peakIndexInMountainArray(int[] A) {
int last = 0;
for(int i = 1; i < A.length; i++){
if(A[i] <= A[last]){
return last;
}
last = i;
}
return -1;
}
}
结果:
惊了,居然又是个难得的0ms和100%。