Come from : [https://leetcode-cn.com/problems/monotonic-array/]
An array is monotonic if it is either monotone increasing or monotone decreasing.
An array A is monotone increasing if for all i <= j, A[i] <= A[j]. An array A is monotone decreasing if for all i <= j, A[i] >= A[j].
Return true if and only if the given array A is monotonic.
Example 1 :
Input: [1,2,2,3]
Output: true
Example 2 :
Input: [6,5,4,4]
Output: true
Example 3 :
Input: [1,3,2]
Output: false
Example 4 :
Input: [1,2,4,5]
Output: true
Example 5 :
Input: [1,1,1]
Output: true
Note :
1. 1 <= A.length <= 50000
2. -100000 <= A[i] <= 100000
easy 类型题目。
这题我走了好多弯路。。。
感觉自己好蠢啊。。。
class Solution {
public:
bool isMonotonic(vector<int>& A) {
int tag = 0; //标志位
for(int i = 0; i < A.size() - 1; ++i)
{
if(A[i] == A[i+1])
{
continue;
}
if(A[i] > A[i+1]) //判断是否单调减 设置tag == 1
{
if(tag == 2)
{
return false;
}
tag = 1;
continue;
}
if(A[i] < A[i+1]) //判断是否单调增 设置tag == 2
{
if(tag == 1)
{
return false;
}
tag = 2;
continue;
}
}
return true;
}
};
方法(有点两个辅助值的意思):很简单,不多BB。
class Solution {
public:
bool isMonotonic(vector<int>& A) {
int up = 1, down = 1;
for(int i = 0; i < A.size() - 1; ++i)
{
if(A[i] >= A[i+1])
{
++down;
}
if(A[i] <= A[i+1])
{
++up;
}
}
if(up == A.size() || down == A.size())
{
return true;
}
else
{
return false;
}
}
};
细心啊 啊 啊!!!
注意 灵活 运用 tag 值。
2019/5/10 胡云层 于南京 75