首页 > 其他分享 >leetcode--901. 股票价格跨度(单调栈)

leetcode--901. 股票价格跨度(单调栈)

时间:2024-03-06 10:12:03浏览次数:24  
标签:count 901 -- top leetcode int push 数据 price

记录
10:00 2024-3-6

https://leetcode.cn/problems/online-stock-span/

维护一个单调递减的栈s,并且也要一个记录个数的栈count
每次来一个数据,这个数据如果比s栈顶数据小,就直接放入s,并在count中记录下它的个数1
如果这个数据比s栈顶数据大,就需要弹出s和count的top,来保证s是递减的,结果就是存在了count栈中

写的有点乱了,其实就是保证s递减,同时知道s中每个数据的count数(count指小于该数据的连续数据个数),这样来了一个数据,就可以通过维护递减栈来维护count栈,从而得到结果

点击查看代码
class StockSpanner {
public:
    // 存数值
    stack<int> s;
    // 存个数
    stack<int> count;
    StockSpanner() {
    }
    
    int next(int price) {
        if(s.empty() || price < s.top()){
            s.push(price);
            count.push(1);
        } else {
            int cnt = 0;
            while(!s.empty() && price >= s.top()) {
                cnt += count.top(); count.pop();
                s.pop();
            }
            s.push(price);
            count.push(cnt + 1);
        }
        return count.top();
    }
};

标签:count,901,--,top,leetcode,int,push,数据,price
From: https://www.cnblogs.com/57one/p/18055904

相关文章

  • Rust笔记(上)
    Rust笔记(上)目录Rust笔记(上)关于为什么最终还是选择了Rust作为主力语言基本数据类型所有权与移动所有权移动注意Rc与Arc:共享所有权引用共享引用可变引用生命周期省略生命周期表达式块与分号声明if与matchiflet循环break错误处理panicResult自定义错误类型结构体泛型结构体结构体自......
  • Jmeter
    下载官网Github配置Jmeter界面汉化永久性:修改bin目录下的配置文件jmeter.properties,language=zh_CN,重启Jmeter即可临时性:菜单Options>ChooseLanguage>Chinese(Simplified)Jmeter主题修改菜单“选项”->外观(选择自己喜欢的主题)响应结果中文不会乱码打开bin目录下......
  • 内网渗透基础
    工作组工作组是计算机最简单的资源管理模式。默认情况下,计算机采用工作组模式进行资源管理,且都处于在名为WORKGROUP的工作组中,在命令提示符执行systeminfo命令,如果输出结果中的"域"信息部分显示为WORKGROUP,则证明当前主机处于工作组而非某个域中。由于工作组是一种松散的资源管......
  • 收藏:关于RADIUS的简明解释(Remote Authentication Dial In User Service远程用户拨号认
    收藏:关于RADIUS的简明解释(RemoteAuthenticationDialInUserService远程用户拨号认证系统)来自:https://baike.sogou.com/v4710162.htm?ch=frombaikevr&fromTitle=RADIUSRADIUS:RemoteAuthenticationDialInUserService,远程用户拨号认证系统(与radius半径的单词拼法一致)......
  • Reference management in Java and Rust, and, how faster Rust can be?
    Hi,thisisablogcomparingthereferenceinrustandjava.IreallylovejavaandIhavespendsometimelearningtheframeworklikespringandothers.AftertakingCOMP6991,Ihavegotthisthink:Howjavamanagethereferenceinmyprogram?WhycanI......
  • nginx 根据useragent 标识特征过滤流量
    配置文件如下:http{map$http_user_agent$is_allowed_user_agent{default0;"~*Chrome/101.0.4951.64"1;}server{listen9999;server_nameyour_domain.com;location/{if($is_allo......
  • 找工作学习第八天
    echarts图表配置 定义一个变量引入echarts,使用echarts。init方法初始化一个标签,然后因为要获取dom中的标签元素,这就要写在mounted里面,定义一个option参数选项对象,下面x轴,y轴数据就可以写成option.x,option.y不用这样写成一大坨 order数据如下,如何将苹果三星小米获取......
  • 多线程系列(十四) -一文带你搞懂线程池技术
    一、前言虽然Java对线程的创建、中断、等待、通知、销毁、同步等功能提供了很多的支持,但是从操作系统角度来说,频繁的创建线程和销毁线程,其实是需要大量的时间和资源的。例如,当有多个任务同时需要处理的时候,一个任务对应一个线程来执行,以此来提升任务的执行效率,模型图如下:如......
  • Windows使用SIDCHG64 修改SID
    1、网站下载工具:https://www.stratesave.com/html/sidchg.html2、执行命令:sidchg64-3.0j.exe/KEY="************"/F/R注意:(1)sidchg有2个版本,标准版sidchg64和轻量版sidchgl64轻量版无需关闭defender实时防护,但是sid改得不彻底标准版执行之前需要关闭defender实时......
  • OpenAI、谷歌、微软、Meta联名签署AI公开信 (学习了解)
    BuildAIforaBetterFuture为更美好的未来构建人工智能Wecalloneveryonetobuild,broadlydeploy,anduseAItoimprovepeople’slivesandunlockabetterfuture.我们呼吁每个人构建、广泛部署和使用人工智能来改善人们的生活,开启更美好的未来。Thepurposeof......