题目:
An array is monotonic if it is either monotone increasing or monotone
decreasing.
An arrayA
is monotone increasing if for alli <= j
,A[i] <= A[j]
. An
arrayA
is monotone decreasing if for alli <= j
,A[i] >= A[j]
.
Returntrue
if and only if the given arrayA
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 <= A.length <= 50000
-100000 <= A[i] <= 100000
解释:
判断是数组否是单调的,元素可以相等。
python代码:
class Solution(object):
def isMonotonic(self, A):
"""
:type A: List[int]
:rtype: bool
"""
if not A or len(A)==1:
return True
last=0
for i in range(1,len(A)):
diff=A[i]-A[i-1]
if diff*last<0:
return False
if diff!=0:
last=diff
return True
c++代码:
class Solution {
public:
bool isMonotonic(vector<int>& A) {
if(A.size()<=1)
return true;
int last=0;
for(int i=1;i<A.size();i++)
{
int diff=A[i]-A[i-1];
if (last*diff<0)
return false;
if(diff!=0)
last=diff;
}
return true;
}
};
总结:
一个非常新奇的角度,用每次差值的成绩是否是负数来判断是不是单调的!!!