題目
給定一個整數陣列 A,如果它是有效的山脈陣列就回傳 true,否則回傳 false,
讓我們回顧一下,如果 A 滿足下述條件,那么它是一個山脈陣列:
A.length >= 3- 在
0 < i < A.length - 1條件下,存在i使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]

示例 1:
輸入:[2,1]
輸出:false
示例 2:
輸入:[3,5,5]
輸出:false
示例 3:
輸入:[0,3,2,1]
輸出:true
提示:
0 <= A.length <= 100000 <= A[i] <= 10000
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/valid-mountain-array
著作權歸領扣網路所有,商業轉載請聯系官方授權,非商業轉載請注明出處,
題解
class Solution {
public boolean validMountainArray(int[] A) {
if(A.length < 3) return false;
int index = -1;
int max = -1;
//最大值下標
for (int i = 0; i < A.length; i++) {
if (A[i] >= max) {
max = A[i];
index = i;
}
}
//峰頭不能在首項或者尾項
if (index == 0 || index == A.length - 1) {
return false;
}
//判斷上山
for (int i = 1; i <= index; i++) {
if(A[i - 1] >= A[i]) {
return false;
}
}
//判斷下山
for (int i = index + 1; i < A.length; i++) {
if (A[i - 1] <= A[i]) {
return false;
}
}
return true;
}
}
1ms 39.2MB
先找出山峰,然后判斷上山情況和下山情況即可(判斷最大值,然后判斷左側是否一直在增加,右側是否一直在減少),
更多題解點擊此處
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/203084.html
標籤:其他
