·题目描述:
896. 单调数列
如果数组是单调递增或单调递减的,那么它是 单调 的。
如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。
如果对于所有 i <= j,nums[i]> = nums[j],那么数组 nums 是单调递减的。
当给定的数组 nums 是单调数组时返回 true,否则返回 false。
示例 1:
输入:nums = [1,2,2,3]
输出:true
示例 2:
输入:nums = [6,5,4,4]
输出:true
示例 3:
输入:nums = [1,3,2]
输出:false
·解题思路:
就是先从第一个元素和第二个元素判断,是先increase还是decrease?但是这时候存在元素相同的可能,这样定调就很复杂。然后去查资料,发现可以使用is_creacing= True和is_decreacing= True来辅助if条件语句。
·解题代码:
class Solution(object):
def isMonotonic(self, nums):
is_creacing = True
is_decreacing = True
if len(nums) == 2:
return True
for i in range(0,len(nums)-1):
if nums[i] > nums[i+1]:
is_creacing = False
if nums[i] < nums[i+1]:
is_decreacing = False
return is_creacing or is_decreacing
这里的解释就是,我先让is_creacing和is_decreacing均为true,一旦出现下降则让is_creacing= False,那就只剩下decrease。然后一旦在数组中出现增,则is_decreacing= False。再输出结果就好了。