2021/2/28 每日一题
用两个dp数组来标记递增或递减,遍历一次完成。
class Solution {
public:
bool isMonotonic(vector<int>& A) {
int n=A.size();
int dpplus[n],dpminu[n];
dpminu[0]=0,dpplus[0]=0;
for(int i=0;i<n-1;++i){
if(A[i]<A[i+1]){
dpplus[i+1]=dpplus[i]+1;
dpminu[i+1]=dpminu[i];
}
else if(A[i]>A[i+1]){
dpminu[i+1]=dpminu[i]-1;
dpplus[i+1]=dpplus[i];
}
else if(A[i]==A[i+1]){
dpminu[i+1]=dpminu[i]-1;
dpplus[i+1]=dpplus[i]+1;
}
}
if(dpplus[n-1]==n-1||dpminu[n-1]==-n+1){
return true;
}
else{
return false;
}
}
};