LC 896. 单调数列 (opens new window) (opens new window)
简单
# 问题描述
如果数组是单调递增或单调递减的,那么它是 单调 的。
如果对于所有 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
提示:
1 <= nums.length <= 105
-105 <= nums[i] <= 105
# 一次遍历
使用两个标记用来标记当前数组的单调性,若两个标记同时发生变化,说明数组不是单调的。
/**
* @param {number[]} nums
* @return {boolean}
*/
var isMonotonic = function (nums) {
let inc = 0
let dec = 0
for (let i = 1; i < nums.length; i++) {
if (nums[i] < nums[i - 1]) {
inc = 1
} else if (nums[i] > nums[i - 1]) {
dec = 1
}
if (inc + dec === 2) return false
}
return true
}
- 时间复杂度:
- 空间复杂度:
上次更新: 2023/01/31 19:48:05
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 , 转载请注明出处!