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:

输出:false

示例 4:

输入:[1,1,1]
输出:true

提示:

1 <= A.length <= 50000
-100000 <= A[i] <= 100000

思路:

如果一个数列是单调的,则其排序后的数列应当与原数列相同,当然,还需要考虑升序还是降序。

代码:

class Solution:
    def judge(self,a,b):
        m=len(a)
        for i in range(0,m):
            if a[i]!=b[i]:
                return False
        return True

    def isMonotonic(self, A):
        """
        :type A: List[int]
        :rtype: bool
        """
        m=A[:]
        A.sort()
        if self.judge(m,A):
            return True
        A.sort(reverse=True)
        if self.judge(m,A):
            return True
        return False

分析:

时间复杂度O(N^2logN),空间复杂度O(n)

猜你喜欢

转载自blog.csdn.net/u013942370/article/details/82355378