【LeetCode刷題】896. 單調數列
如果陣列是單調遞增或單調遞減的,那麼它是單調的。
如果對於所有 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) {
int flag = 0;
for(int i=1;i<A.length;i++){
//把第一個非0差值賦給flag
if(flag == 0){
flag = A[i] - A[i-1];
}
int temp = A[i]-A[i-1];
//差值不同號,則非單調
if(flag * temp < 0){
return false;
}
}
return true;
}
}
法二:使用兩個變數記錄相鄰陣列的大小;最後判斷兩個變數
class Solution {
public boolean isMonotonic(int[] A) {
int i = 0;
int j = 0;
for(int k=0;k<A.length-1;k++){
if(A[k] < A[k+1]){
i++;
}else if(A[k] > A[k+1]){
j++;
}
if(i!=0 && j!=0){
return false;
}
}
return i*j==0;
}
}
如果單調的話,i和j就不會變化,即兩個都為0
如果不單調的話,i和j都不為0。
參考:https://leetcode-cn.com/problems/monotonic-array
相關文章
- 力扣896. 單調數列-C語言實現-簡單題力扣C語言
- LeetCode刷題—陣列LeetCode陣列
- Leetcode刷題——求眾數LeetCode
- 【Leetcode刷題篇】leetcode152 乘積最大陣列LeetCode陣列
- [LeetCode 刷題] 1. 兩數之和LeetCode
- [LeetCode 刷題] 2. 兩數相加LeetCode
- #leetcode刷題之路1-兩數之和LeetCode
- LeetCode 刷題—樹LeetCode
- LeetCode刷題 堆LeetCode
- LeetCode刷題整理LeetCode
- leetcode刷題(一)LeetCode
- [LeetCode 刷題] 4. 尋找兩個有序陣列的中位數 (Hard)LeetCode陣列
- Leetcode刷題之 【最近的請求次數】LeetCode
- 【LeetCode刷題】509. 斐波那契數LeetCode
- 【刷題筆記】LeetCode-53 最大子陣列和筆記LeetCode陣列
- LeetCode刷題記錄LeetCode
- leetcode刷題筆記LeetCode筆記
- 如何使用leetcode刷題LeetCode
- Leetcode刷題分類LeetCode
- LeetCode 刷題筆記LeetCode筆記
- Leetcode刷題準備LeetCode
- LeetCode刷題之第701題LeetCode
- LeetCode 刷題指南(一):為什麼要刷題LeetCode
- Leetcode:單調棧_可見山峰問題LeetCode
- leetcode刷題記錄 661~LeetCode
- leetcode刷題筆記605LeetCode筆記
- Leetcode刷題系列彙總LeetCode
- 【LeetCode】738. 單調遞增的數字LeetCode
- Leetcode刷題628. 三個數的最大乘積LeetCode
- 【每日一題】3250. 單調陣列對的數目 I每日一題陣列
- leetcode刷題之1160拼寫單詞 java題解(超詳細)LeetCodeJava
- 單調棧/單調佇列佇列
- 【LeetCode刷題(簡單程度)】劍指 Offer 57. 和為s的兩個數字LeetCode
- 組隊刷LeetCode - 兩數之和LeetCode
- leetcode刷題筆記(3)(python)LeetCode筆記Python
- LeetCode刷題(javascript,python3)LeetCodeJavaScriptPython
- 用 Rust 刷 leetcode 第七題RustLeetCode
- 用 Rust 刷 leetcode 第一題RustLeetCode