概述
单调数列
一、LeetCode题解
瞧一瞧~
- 博健的LeetCode题解:Gitbook版本传送门
- 博健的LeetCode题解:CSDN传送门
- 前端进阶笔记:Gitbook传送门
二、算法题
题目
如果数组是单调递增或单调递减的,那么它是单调的。
如果对于所有 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
解法一 (暴力)
思路
- 遍历一次,两两比较,统计相邻元素之间的升降关系
- 单调数列之中,相邻两个元素的升降关系只能是一种
代码
var isMonotonic = function(A) {
var compare = {
up: 0,
down: 0,
}
var res = 0
for(let i = 0; i < A.length-1; i++){
res = A[i+1] - A[i]
if(res > 0){
compare.up++
}else if(res < 0){
compare.down++
}
}
if(compare.up > 0 && compare.down > 0){
return false
}
return true
};
结果
解法二(单方向检查)
思路
- 第一次只判断单调递增。
- 第二次只判断单调递减。
代码
var isMonotonic = function(A) {
if(A.length === 1) return true;
var up = '', down = '';
for(let i = 0; i < A.length-1; i++){
if(A[i+1] - A[i] >=0) {
up = true;
}else{
up = false;
break;
}
}
for(let i = 0; i < A.length-1; i++){
if(A[i+1] - A[i] <= 0) {
down = true;
}else{
down = false;
break;
}
}
return up || down
};
结果
最后
以上就是文静纸飞机为你收集整理的LeetCode题解:896.单调数列单调数列的全部内容,希望文章能够帮你解决LeetCode题解:896.单调数列单调数列所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复