Vison's Blog
所有文章
文章总览
编辑器
Publications
About Me
Search
目录
#toc-container
下载Markdown文件
【2.28】LeetCode每日一题· 单调序列
2021年02月28日 12时15分
标签:
LeetCode
数组
## 题目描述 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有`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 输入:[1,3,2] 输出:false #### 示例4 输入:[1,2,4,5] 输出:true #### 示例5 输入:[1,1,1] 输出:true #### 提示 1 <= A.length <= 50000 -100000 <= A[i] <= 100000 #### 来源 > 来源:力扣(LeetCode) > 链接:[题目链接](https://leetcode-cn.com/problems/monotonic-array/ "题目链接") ## 解题思路 对比相邻两个数字`A[i]`和`A[i+1]`。当`A[i]`和`A[i+1]`相等时,不会对单调性产生影响,因此我们只关注其不相等的两种情况。使用两个bool变量记录数组中是否存在`A[i] < A[i+1]`的关系或`A[i] > A[i+1]`的关系,如果这两种关系同时存在,则说明数组是不单调的;否则该数组是单调的。 时间复杂度$$O(n)$$,空间复杂度$$O(1)$$。 ##代码 #!C++ class Solution { public: bool isMonotonic(vector
& A) { bool dec = false, inc = false; for(int i = 0; i < A.size()-1; i++){ if(A[i] < A[i+1]){ inc = true; } else if(A[i] > A[i+1]){ dec = true; } if(inc && dec) return false; } return true; } }; ## 用时和内存 > 执行用时:60 ms,在所有 C++提交中击败了96.94%的用户 > 内存消耗:48.3 MB,在所有 C++提交中击败了86.68%的用户
所有评论
vis***********.com
回复
2024年03月24日 23:02:09
123
参与主题/评论回复
vis***********.com 发表于2024年03月24日 23:02:09
123
回复评论
邮箱
图形验证码
邮箱验证码
发送验证码
914*********.com
回复
2024年03月24日 23:04:24
test
参与主题/评论回复
914*********.com 发表于2024年03月24日 23:04:24
test
回复评论
邮箱
图形验证码
邮箱验证码
发送验证码
新增评论
评论
邮箱
邮箱仅作验证使用
图形验证码
邮箱验证码
发送验证码
发表评论
所有评论
123
参与主题/评论回复
123
test
参与主题/评论回复
test