單調數列[leetcode]
阿新 • • 發佈:2018-12-11
題目描述
如果陣列是單調遞增或單調遞減的,那麼它是單調的。
如果對於所有 i <= j
,A[i] <= A[j]
,那麼陣列 A
是單調遞增的。 如果對於所有 i <= j
,A[i]> = A[j]
,那麼陣列 A
是單調遞減的。
當給定的陣列 A
是單調陣列時返回 true
,否則返回 false
。
示例 1:
輸入:[1,2,2,3]
輸出:true
示例 2:
輸入:[6,5,4,4]
輸出:true
示例 3:
輸入:[1,3,2]
輸出:false
示例 4:
輸入:[1,2,4,5]
輸出:true
示例 5:
輸入:[1,1,1]
輸出:true
提示:
1 <= A.length <= 50000
-100000 <= A[i] <= 100000
分析
按照遞增和遞減分別寫兩個函式,放到目標函式中做判斷。
貼出程式碼
class Solution {
public boolean isMonotonic(int[] A) {
if(upMonotonic(A)||downMontonic(A))
return true;
else if(A.length == 1)
return true;
else return false;
}
public boolean upMonotonic(int[] A){
int a,b;
boolean t = false;
for(int i = 1; i < A.length; i++){
a = A[i - 1];
b = A[i];
if(a <= b)
t =true;
else{
t = false;
break;
}
}
return t;
}
public boolean downMontonic(int[] A){
int a,b;
boolean t = false;
for(int i = 1; i < A.length; i++){
a = A[i - 1];
b = A[i];
if(a >= b)
t =true;
else{
t = false;
break;
}
}
return t;
}
}