每日一题 901. 股票价格跨度(中等,单调栈)

news2024/11/17 3:43:58

在这里插入图片描述
理解题目,对于第 i 天,要求的是前 i - 1 天所满足条件的跨度

思路:

  1. 暴力搜索的方式是,对于每一个第 i 天都遍历搜索 i - 1, i - 2,…,直到第 j 天大于当前价格
  2. 优化,考虑哪里进行了重复搜索或者说第 i 天的跨度计算后是否可以用于后面某一天的跨度计算
  3. 显然,如果第 j 天的跨度是 n(j < i),那么当对于第 i 天遍历搜索到第 j 天时,如果第 i 天的价格大于等于第 j 天,那么第 i 天的跨度可以直接加上 n,这样可以省去 n 次的重复判断,下一个判断就从 j - n 天开始

代码单调栈实现:

class StockSpanner:

    def __init__(self):
        self.l = [[1000000, 0]]

    def next(self, price: int) -> int:
        if price < self.l[-1][0]:
            self.l.append([price, 1])
            return 1
        
        ans = 1
        while price >= self.l[-1][0]:
            ans += self.l[-1][1]
            self.l.pop()
        
        self.l.append([price, ans])
        return ans

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1500*B. Zero Array(贪心数学找规律)

Problem - 1201B - Codeforces 解析&#xff1a; 因为每次减少2&#xff0c;如果总和为奇数肯定无法实现。 特例&#xff0c;如果某个数大于其他所有数的总和&#xff0c;同样无法实现。 其他均可实现。 #include<bits/stdc.h> using namespace std; #define int long l…

数学王国找寻另一半:求一个整数的真因子总和

数学王国找寻另一半&#xff0c;求一个整数的真因子总和。 (本笔记适合python字符串、列表list熟悉的 coder 翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c;不…

基于水循环优化的BP神经网络(分类应用) - 附代码

基于水循环优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于水循环优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.水循环优化BP神经网络3.1 BP神经网络参数设置3.2 水循环算法应用 4.测试结果&#x…

10月7日星期六今日早报简报微语报早读

10月7日&#xff0c;星期六&#xff0c;早报简报微语早读分享。 1、中秋国庆假期国内旅游8.26亿人次&#xff0c;旅游收入7534.3亿&#xff1b; 2、2023国庆档新片票房破27亿&#xff1b; 3、石宇奇、李诗沣会师决赛&#xff0c;国羽提前包揽男单金银牌&#xff1b; 4、德国大…

前端vue 自定义组件

Vue组件的使用之props 为了提高组件的复用性&#xff0c;在封装vue组件时需要遵守如下原则&#xff1a; ① 组件的DOM结构、Style样式要尽量复用 ② 组件中要显示的数据&#xff0c;尽量由组件的使用者提供 为了方便使用者为组件提供要展示的数据&#xff0c;vue组件提供了…

【C++面向对象侯捷下】4. pointer-like classes,关于智能指针 | 5. function-like classes,所谓仿函数

文章目录 4. pointer-like classes,关于智能指针pointer-like classes,关于智能指针 shared_ptrpointer-like classes,关于迭代器5. function-like classes&#xff0c;所谓仿函数【不懂&#xff0c;跳过】 4. pointer-like classes,关于智能指针 pointer-like classes,关于智…

Postgresql中的C/C++混编(JIT)

1 Postgresql编译JIT 整体上看使用了GCC、G编译文件&#xff0c;最后用G汇总&#xff1a; GCC编译的三个.o文件llvmjit、llvmjit_deform、llvmjit_expr llvmjit.c -> llvmjit.o gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -…

VF11MR8M 冲销原因 小结

VF11&MR8M 冲销原因 小结 1.后台设置路径&#xff1a; SPRO->财务会计->总账会计->业务交易->调整过账/冲销->定义冲销原因 反记账&#xff1a; 2.前台操作使用01–当前期间回转 不会反记账&#xff0c;冲销凭证 过账日期 按 原凭证过账日期&#xff0…

CCF CSP认证 历年题目自练Day23

CCF CSP认证 历年题目自练Day23 题目一 试题编号&#xff1a; 202006-1 试题名称&#xff1a; 线性分类器 时间限制&#xff1a; 1.0s 内存限制&#xff1a; 512.0MB 题目分析&#xff08;个人理解&#xff09; 题目很长&#xff0c;专门吓唬人的&#xff0c;第一行输入…

安卓‘进度条ProgressBar’中‘setIndeterminate()’方法

在进度条的设置中&#xff0c;setIndeterminate()方法是用来设置进度条是否采用‘模糊模式’&#xff08;Indeterminate的意思就是‘不确定的&#xff0c;模糊的&#xff0c;不明确的’ 也就是进度是否是确定的&#xff09; 当设置setIndeterminate(true)参数为真时&#xff0c…

Compose中的Text组件

纵向布局为&#xff1a;Column 横向布局为&#xff1a;Row 设置内容 text属性设置内容。 设置权重 Modifier.weight(1.0f, true)权重设置&#xff0c;第一个参数 Float类型设置占比权重&#xff0c;第二个参数当为true时&#xff0c;元素将占据分配的整个宽度。 fontSize…

李沐深度学习记录3:11模型选择、欠拟合和过拟合

通过多项式拟合探索欠拟合与过拟合 import math import numpy as np import torch from torch import nn from d2l import torch as d2l#生成数据集 max_degree 20 # 多项式的最大阶数 n_train, n_test 100, 100 # 训练和测试数据集大小 true_w np.zeros(max_degree) # …

VMware 17pro安装流程附带密钥手把手教

VMware 17pro centos-8.5.2111-isos-x86_64安装包下载_开源镜像站-阿里云 安装VMware 17pro 下一步 勾选我接营许可协议中的条款点击下一步 更改路径后点击下一步 注意两个都要取消勾选不然会自动更新 下一步即可 最后一步为安装就行&#xff08;我电脑上有VMware 16pro所以我的…

3.绘制一个点(鼠标点击)

愿你出走半生,归来仍是少年&#xff01; 通过鼠标点击交互&#xff0c;实现在gl中绘制点。 1.知识点 1.1.点击坐标转换为Gl坐标 通过canvas的点击事件将会获得鼠标在浏览器客户区中的坐标。通过移除canvas自身位置后可获取鼠标在canvas中的点击位置。同时通过canvas的长宽将坐…

Mini-dashboard 和meilisearch配合使用

下载的meilisearch一般是development模式&#xff0c;内置客户端&#xff0c;修改客户端后需要重要全部编译&#xff0c;花时间太长了。前后端分离才是正道&#xff0c;客户端修改不用重新编译后端。 方法如下&#xff1a; 1、修改配置文件/etc/meilisearch.toml&#xff0c;…

磁盘io使用率高问题排查

Linux系统出现了性能问题&#xff0c;一般我们可以通过top、iostat、free、vmstat等命令来查看初步定位问题。其中iostat可以给我们提供丰富的IO状态数据。 1.小文件读写的磁盘性能瓶颈是寻址&#xff08;随机读写性能更差&#xff09;评估标准:TPS 2.大文件读写的磁盘性能瓶颈…

cereal:支持C++11的开源序列化库

cereal:支持C11的开源序列化库 文章目录 一&#xff1a;引言二、cereal简介三、cereal的下载和使用 一&#xff1a;引言 序列化 (Serialization) 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中&#xff0c;然后将其写入某个文件或是将它传输到网络中的另…

认识计算机主板

目录 定义主要部件简单图示 主要功能 定义 计算机主板&#xff08;Motherboard&#xff09;是计算机系统中的核心组件之一&#xff0c;也被称为系统板、主板或母板。它是一个电子电路板&#xff0c;用于连接和支持计算机的各种硬件组件&#xff0c;包括中央处理器&#xff08;…

零售业:别让数据安全成为业务的绊脚石!(附文件下载)

零售业上榜&#xff01; 截至2023年8月31日&#xff0c;南都大数据研究院通过各地行政执法公示平台、媒体报道等公开渠道&#xff0c;收集到146起依据《数据安全法》作出行政处罚决定的案例。梳理发现&#xff0c;零售业以10.27%的占比位居行业第三&#xff0c;成为数据安全行…

尚硅谷Nginx教程由浅入深--笔记

尚硅谷Nginx教程由浅入深--笔记 Nginx简介Nginx相关概念反向代理负载均衡动静分离 Nginx安装Nginx命令Nginx配置Nginx配置实例反向代理1反向代理2负载均衡动静分离 Nginx简介 Nginx是一个高性能的HTTP和反向代理服务器&#xff0c;特点是内存占用少&#xff0c;并发能力强。 …