(刷题笔记) Leetcode 896.单调数列

【C++】单调队列 详解 今天我们来讲一下单调队列与栈。 这两种数据结构虽然没有在c++的stl中有直接的实现,但是在做题过程中,很容易有单调队列(栈)的使用,尤其是在一些比较难的题目中。 目录单调队列1.1 单调队列介绍1.2 单调队列的应用1.2.1 滑动窗口最大值1.2.1.1 题目描述1.2.1.2 结题思路方法一(优先队列)方法二 (单调队列)1.3 单调队列的模拟实现1.4 其他例题 单调队列 1.1 单调队列介绍 单调队列 是 队列中元素之间的关系具有单调性,而且,队首和队尾都可以进行出队操作,只有队尾可以进行入队 阅读详情

题目

如果数组是单调递增或单调递减的,那么它是单调的。

如果对于所有 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

解题思路

简单题,本来想的是比较左中右三个数是否有单调性来免去不单调的时候遍历整个数组的问题,后来发现两个连续相等的数就能破坏这种判断方法,
后来就写了每次遍历整个数组,记录单调情况,如果up和down都大于0,说明整个数组不单调,其他情况单调。这是下面的代码一。

然后看了一下提交记录里其他更快的方法,利用的是满足条件则遍历数组,不满足就停止遍历,记录循环次数,等于数组长度则说明单调,不等于则说明不单调,
这样就能在没有单调性的时候不用遍历整个数组,有单调性的时候只遍历一次数组。唯一可能耗费时间多的情况就是,数组前面有一串相等,只在最后出现了不单调情况。
这是代码二

后面还看了一种方法,用的是乘法,我一开始想了半天设flag,就是不知道怎么设来体现非单调性,后来看别人的答案,就利用本次两数的差值与上次两数的差值的乘积,
小于0说明异号,单调性有改变。这是代码三

这大概就是简单题的魅力?基本上人人能解,但是可能每个人思路都不一样。

代码(C++)

代码一

class Solution {
public:
    bool isMonotonic(vector<int>& A) {
        
        if(A.size()<3) return true;
        int up=0;
        int down=0;
       for(int i=1;i<A.size();++i){
           if(A[i]>A[i-1]) down++;
           else if(A[i]<A[i-1]) up++;
       }
       
      
       if(down!=0&&up!=0){
           return false;
       }

       return true;
    }
};

代码二

class Solution {
public:
    bool isMonotonic(vector<int>& A) {

        int i=1;
        while(i<A.size()&&A[i]>=A[i-1]) i++;
        if(i==A.size()) return true;
        i=1;
        while(i<A.size()&&A[i]<=A[i-1]) i++;
        if(i==A.size()) return true;

        return false;

    }
};

代码三

class Solution {
public:
    bool isMonotonic(vector<int>& A) {

        int flag1=0,flag2=0;

        for(int i=1;i<A.size();++i){

            if(A[i]==A[i-1]) continue;
            else   flag2=A[i]-A[i-1];
            
            if(flag1*flag2<0) return false;
            flag1=flag2;
        }

        return true;

    }
};
手把手完整实现STM32+LORA组网网关+机智云平台+手机APP应用———第一节- 一主多从的LORA本地组网通信-实现从机采集温湿度与主机显示数据 本教程为《手把手实现STM32+LORA组网网关+机智云平台+手机APP应用》第一节。实现一个主机,两个从机的LORA组网通信。两个从机采集温湿度数据并通过LORA传输数据到主机,然后主机接收到两个从机数据后进行数据显示,本节通过PC串口助手显示两个从机的数据。 下一节将其主机接收的数据通过WIFI网关(ESP8266)传到机智云平台与手机APP。 本文讲解一主多从的LORA本地组网通信,串口助手进行数据展示。使用硬件主要包括:STM32F103C8T6最小系统板(3个)、正点原子LORA模块ATK-L 阅读详情

相关推荐

Unity海洋渲染实战:Ceto Ocean System核心原理与高级应用指南

实时水面渲染是计算机图形学中的重要课题,涉及波浪模拟、光照交互和着色器编程等核心技术。其原理通常基于物理模型,如使用Gerstner波模拟规则海浪,或通过快速傅里叶变换(FFT)处理频谱数据生成随机海面。这些技术的价值在于能以可控的性能开销,在游戏中实现具有体积感、反射和折射效果的真实水体。在开放世界、海战模拟等应用场景中,专业的海洋系统如Ceto Ocean System,通过模块化架构整合了波浪生成、动态网格和渲染管线,为开发者提供了完整的解决方案。本文深入探讨了其双引擎波浪系统和多层渲染结构,并分享了

weixin_29002595的博客 279

蓝桥与力扣刷题(896 单调数列)

第二种解题思路+代码:(两次遍历)(引用力扣评论区 作者:负雪明烛 题解:https://leetcode.cn/problems/monotonic-array/solutions/625294/liang-ci-bian-li-yu-yi-ci-bian-li-by-fux-qvw0/)总结:不论是一次遍历还是两次遍历,它们的时间复杂度都是O(n),空间复杂度都是O(1). 两种解题方法区分而言,一次遍历可能更为直观,直接在循环当中就完成了所有的判断;题目:如果数组是单调递增或单调递减的,那么它是。

旧栎 393

android广告SDK原理详解(附源码)

广大的开发者吃糠咽菜开发了一两款APP,获取了一些流量后自然就会想到流量变现,一般情况下大家会选择到百度联盟或者Google Admob这些广告服务提供商注册开发者账号,在自己的APP里面加上几行广告位代码,集成他们的广告SDK包。然后谋事在人,成事在天,只有每天看报表查查收益。   也有一些开发者为了能够提高自己的变现水平,同时接入了好几家的sdk,哪家出的收益高一点我就出哪家的广告,但是这

rmcgogo的博客 1万+

leetcode896:单调数列

leetcode896:单调数列 如果数组是单调递增或单调递减的,那么它是单调 的。 如果对于所有 i

m0_63743577的博客 619

使用LoRa远程控制路灯(PWM调光以及LoRaWAN单播、组播、广播)

PWM调光 1、使用有pwm波输出的引脚,本例子使用timer0,PA0引脚; 2、由于timer时钟的原因,mcu不能进入休眠; 3、主控使用EFM32,代码实现如下: #define MAX_PULSE (CPU_FREQ/1000-1) #define UNIT_PULSE MAX_PULSE/100 //单位脉宽 void pwminit(void) { ...

freemote的博客 2944

大模型系列——Ollama-OCR 简明教程

Llama 3.2-Vision 是一个多模态大型语言模型,有 11B 和 90B 两种大小,能够处理文本和图像输入以生成文本输出。该模型在视觉识别、图像推理、图像描述和回答与图像相关的问题方面表现出色,在多个行业基准测试中优于现有的开源和闭源多模态模型。在本文中,我将介绍如何调用由 Ollama 运行的 Llama 3.2-Vision 11B 建模服务并使用实现图像文本识别 (OCR) 功能。

2401_84052244的博客 1万+

896. 单调数列 单个循环判断

两个标示符判断,不用分情况写两个循环判断增减

zf111212的博客 380

基于STC8G1K08A单片机的PCA捕获外部信号(100~1000HZ)程序实现

基于STC8G1K08A单片机的PCA捕获外部信号(100~1000HZ)程序实现

weixin_74013772的博客 255

【LeetCode】896. 单调数列(C++)

896. 单调数列1 题目描述2 示例描述2.1 示例12.2 示例22.3 示例32.4 示例42.5 示例53 解题提示4 解题思路5 源码详解(C++) 1 题目描述 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 2 示例描述 2.1

敲代码两年半的练习生博客 358

乐企归集能力说明文档V2.0006

纳税人销售货物、提供服务开具的增值税发票及购进货物、接受服务取得的增值税发票、海关缴款书(含出口转内销证明)、代扣代缴完税凭证,可以通过本能力进行归集。纳税人可将本能力中的各类规则和接口嵌入本单位信息化系统中(如:销售、报销、财务等),实现发票自动化归集,便于纳税人完成发票入账、抵扣、退税以及代办退税等操作,有效提升涉税业务办理效率。

记录点滴 573

Open3D 计算点云法向量的夹角【2026最新版】

计算法向量的夹角,博客长期更新,本文最新更新时间为:2026年3月7日。

点云侠的博客 3131

LeetCode刷题复盘笔记—896. 单调数列

题目: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: 输入:[1,3,2] 输出:false 示

Lucky_Alan_Gareth的博客 273

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

LeetCode刷题笔记_896. 单调数列

文章目录题目描述思路题解参考资料 题目描述 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 输入:[6,5,4,4] 输出:true 思路 至少要进行一次完整的遍历,才能知道数组的整个情况。 一次遍历。inc 和 dec 分别存储是否是升序和降

小威的博客 220

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode刷题之896. 单调数列

LeetCode刷题之896. 单调数列 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例:

胡萝卜 251

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LeetCode刷题896-简单-单调数列

算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题!

布小禅的博客 3000

力扣每日一题:896. 单调数列

目录题目:896. 单调数列示例1示例2示例3示例4示例5提示解题思路解题代码(1)一次遍历(2)两次遍历解题感悟 题目:896. 单调数列 难度: 简单 题目:  如果数组是单调递增或单调递减的,那么它是单调的。  如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。  当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例1 输入:[1,2,2,3

aruewds的博客 290

leetcode 896. 单调数列 (python)

leetcode 896. 单调数列 – python 题目: 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i &amp;amp;lt;= j,A[i] &amp;amp;lt;= A[j],那么数组 A 是单调递增的。 如果对于所有 i &amp;amp;lt;= j,A[i]&amp;amp;gt; = A[j],那么数组 A 是单调递减的。 当给定的数组 A 是单调数组时返回 true,否则返回 false。 示例 1: 输入:[1,..

W&J 676

[数组][简单]896.单调数列

tags: 简单 完成 数组 flag: green style: summer date: ‘2019-6-23’ 896.单调数列 一、题目 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> = A[j],那么数组 A 是单调递减的。 当给...

GJXAIOU 的 优快云 博客 410

896. 单调数列

896.单调数列 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有i <= j,A[i] <= A[j],那么数组A是单调递增的。 如果对于所有i <= j,A[i]> = A[j],那么数组A是单调递减的。 当给定的数组A是单调数组时返回true,否则返回false。 示例 1: 输入:[1,2,2,3] 输出:tru...

link-P 181

【力扣】896. 单调数列

以下为本人思路,以及力扣官方题解 896. 单调数列题目示例 1:示例 2:示例 3:示例 4:示例 5:提示:本人思路代码复杂度分析提交结果:通过官方题解 题目 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i<=ji <= ji<=j,A[i]<=A[j]A[i] <= A[j]A[i]<=A[j],那么数组 AAA 是单调递增的。 如果对于所有 i<=ji <= ji<=j,A[i]>=A[j]A[i]> = A[j

qq_45256357的博客 412

LeetCode刷题|896单调数列

前言 从今天开始,我打算在这里记录下每一次的刷题。边做边学边总结,到目前为止我都还是只能解决简单难度的题目,希望我能坚持下来,能看到我的提高。 题目 LeetCode每日一题:单调数列 我的解法 拿到题目,我的第一反应是先用前两个数判断整个数列可能的升降趋势。但是仔细一想这种方法是行不通的,因为前面两个数可能是相等的,而且可能还会出现前面n个数都是相等的,所以这种想法pass掉。 于是我就想到,既然前两个数判断不了整个数列可能的趋势,那么第一个数和最后一个数用来比较不就可以判断整个数列的趋势了吗。因此,将

DXRfighting的博客 243

力扣——编程基础 896.单调数列

如果数组是单调递增或单调递减的,那么它是 单调 的。如果对于所有 i <= j,nums[i] <= nums[j],那么数组 nums 是单调递增的。如果对于所有 i <= j,nums[i] >= nums[j],那么数组 nums 是单调递减的。当给定的数组 nums 是单调数组时返回 true,否则返回 false。

m0_56222212的博客 357

LeetCode题解:896.单调数列

单调数列 一、LeetCode题解 瞧一瞧~ 博健的LeetCode题解:Gitbook版本传送门 博健的LeetCode题解:优快云传送门 前端进阶笔记:Gitbook传送门 二、算法题 题目 如果数组是单调递增或单调递减的,那么它是单调的。 如果对于所有 i <= j,A[i] <= A[j],那么数组 A 是单调递增的。 如果对于所有 i <= j,A[i]> ...

余光的博客 647

力扣896——单调数列

【代码】力扣896——单调数列。

weixin_46078676的博客 270

Leetcode-896.单调数列

decreasing = False # 如果之前假设是递减的,但现在发现递增,则更新状态。increasing = False # 既然已经递减,递增的假设就不再成立。if increasing: # 如果之前假设是递增的,则现在不是单调的。# 发现递增(这里其实可以省略,因为递减状态会由上面的条件更新)# 初始假设数组未检测到递增(用于检测递减,但开始时我们不知道)// 发现递减,如果之前已经确定递增,则不是单调。// 发现递增,如果之前已经确定递减,则不是单调。// 如果相等,则不改变状态。

Zoe_igxgx的博客 932

单调数列 - 简单

【代码】单调数列 - 简单。

ElseWhereR的博客 648
上一篇: (刷题笔记) 牛客网 腾讯2020校园招聘-后台 1.压缩算法
下一篇: (刷题笔记) Leetcode 503. 下一个更大元素 II
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值