当前位置: 首页 > news >正文

【力扣每日一题】2023.10.8 股票价格波动

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

这道题是程序设计题,要我们实现一个类,一共是四个功能,第一个是给一个时间戳和价格,表示该时间的股票价格,我们需要记录下这个时间以及对应的价格,如果之前已经记录过这个时间戳了,那么我们需要更新。

第二个功能是获取最新的股票价格,也就是时间戳最大时的价格。

剩下的是获取股票的最大和最小的价格。

首先我们要获取股票的最大和最小价格,那么意味着我们需要对价格排序,我们要获取时间戳最大的数据,那么我们要对时间戳排序。既然都要排序,那么我们就无法在一个容器中同时实现,可以自动排序的容器有set和map,我们应该如何选择呢?

对时间戳排序的容器我们使用map,因为时间戳一对一一个股票价格,刚好符合map的键值对,我们直接取出map最后一个元素的值就是最新的股票价格了。

对股票价格排序的容器我们使用set,这样我们需要最大价格和最小价格时只需要出去set的最后一个元素和第一个元素即可。另外要注意的是,我们不能使用set,我们需要使用multiset,因为不同时间的股票价格是可能会重复的,而multiset可以多次存放相同的元素。

三个获取的函数我们就搞定了,接下来是更新数据的函数。

如果这个时间戳我们之前没有记录,那么我们正常存入map和set即可。如果这个时间我们之前记录了,由于我们要修改股票的价格,那么我们需要先把set中对应时间戳的股票价格给删除掉,再插入新的价格即可。

代码:

class StockPrice {
public:map<int,int>m;      //存放时间与价格的对应关系multiset<int>s;     //存放记录中股票的价格StockPrice() {}void update(int timestamp, int price) {//如果对应时间已经有了,那么需要更新股票价格,把记录中的原价格删除if(m.find(timestamp)!=m.end()){     s.erase(s.find(m[timestamp]));}//更新对应时间的股票价格以及存放记录中股票的价格m[timestamp]=price;s.insert(price);}int current() {//map底层自动排序,直接返回map中最后一个元素的secondreturn (*(m.rbegin())).second;}int maximum() {//set底层自动排序,直接返回set中最后一个元素return (*(s.rbegin()));}int minimum() {//set底层自动排序,直接返回set中第一个元素return (*(s.begin()));}
};

相关文章:

【力扣每日一题】2023.10.8 股票价格波动

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 这道题是程序设计题&#xff0c;要我们实现一个类&#xff0c;一共是四个功能&#xff0c;第一个是给一个时间戳和价格&#xff0c;表示该…...

Linux隐藏文件或文件夹

在Linux中&#xff0c;以点&#xff08;.&#xff09;开头的文件或文件夹是隐藏文件或隐藏文件夹。要创建一个隐藏文件或文件夹&#xff0c;可以使用以下命令&#xff1a; 创建隐藏文件&#xff1a; touch .filename这将在当前目录下创建一个名为 “.filename” 的隐藏文件。…...

leetcode - 365周赛

一&#xff0c;2873.有序三元组中的最大值 I ​ 该题的数据范围小&#xff0c;直接遍历&#xff1a; class Solution {public long maximumTripletValue(int[] nums) {int n nums.length;long ans 0;for(int i0; i<n-2; i){for(int ji1; j<n-1; j){for(int kj1; k<…...

为什么mac上有的软件删除不掉?

对于Mac用户来说&#xff0c;软件卸载通常是一个相对简单的过程。然而&#xff0c;有时你可能会发现某些软件似乎“顽固不化”&#xff0c;即使按照常规方式尝试卸载&#xff0c;也依然存在于你的电脑上。这到底是为什么呢&#xff1f;本文将探讨这一问题的可能原因。 1.卸载失…...

【vue3】wacth监听,监听ref定义的数据,监听reactive定义的数据,详解踩坑点

假期第二篇&#xff0c;对于基础的知识点&#xff0c;我感觉自己还是很薄弱的。 趁着假期&#xff0c;再去复习一遍 之前已经记录了一篇【vue3基础知识点-computed和watch】 今天在学习的过程中发现&#xff0c;之前记录的这一篇果然是很基础的&#xff0c;很多东西都讲的不够…...

跨境电商如何通过软文建立品牌形象?

在全球产业链结构重塑后的今天&#xff0c;越来越多的企业意识到想要可持续发展&#xff0c;就需要在建立品牌形象&#xff0c;在用户心中留下深刻印象&#xff0c;那么应该如何有效建立品牌形象呢&#xff1f;可以利用软文来打造品牌形象&#xff0c;接下来媒介盒子就告诉大家…...

我做了一个简易P图(参数图)分析软件

P图(即参数图&#xff0c;Parameter Diagram)&#xff0c;是一个结构化的工具&#xff0c;帮助大家对产品更好地进行分析。 典型P图格式 P图最好是和FMEA软件联动起来&#xff0c;如国可工软的FMEA软件有P图分析这个功能。 单纯的P图分析软件很少&#xff0c;为了方便做P图分…...

209.Flink(四):状态,按键分区,算子状态,状态后端。容错机制,检查点,保存点。状态一致性。flink与kafka整合

一、状态 1.概述 算子任务可以分为有状态、无状态两种。 无状态:filter,map这种,每次都是独立事件有状态:sum这种,每次处理数据需要额外一个状态值来辅助。这个额外的值就叫“状态”2.状态的分类 (1)托管状态(Managed State)和原始状态(Raw State) 托管状态就是由…...

rabbitmq查看节点信息命令失败

不影响访问rabbitmq&#xff0c;但是无法使用 命令查看节点信息 等 查看节点信息命令&#xff1a;rabbitmq-diagnostics status --node rabbitJHComputer Error: unable to perform an operation on node ‘rabbitJHComputer‘. Please see diagnostics informatio rabbitmq-…...

c语言动态内存分布

前言&#xff1a; 随着我们深入的学习c语言&#xff0c;之前使用的静态内存分配已经难以满足我们的实际需求。比如前面我们的通讯录功能的实现&#xff0c;如果只是静态内存分配&#xff0c;那么也就意味着程序开始的内存分配大小就是固定的&#xff0c;应该开多大的空间呢&am…...

1.3.2有理数减法(第一课时)作业设计

【学习目标】 1&#xff0e;理解有理数减法法则&#xff0c;能熟练地进行有理数的减法运算&#xff0e; 2&#xff0e;感受有理数减法与加法对立统一的辨证思想&#xff0c;体会转化的思想方法&#xff0e;...

vue3 -- ts封装 Turf.js地图常用方法

Turf.js中文网 地理空间分析库,处理各种地图算法 文档地址 安装 Turf 库 npm install @turf/turf创建src/hooks/useTurf.ts 文件1:获取线中心点 效果: 代码: useTurf.ts import * as turf from @turf/turf// 获取线中心点 export class CenterPointOfLine {...

Qt之实现圆形进度条

在Qt自带的控件中&#xff0c;只有垂直进度条、水平进度条两种。 在平时做页面开发时&#xff0c;有些时候会用到圆形进度条&#xff0c;比如说&#xff1a;下载某个文件的下载进度。 展示效果&#xff0c;如下图所示&#xff1a; 实现这个功能主要由以下几个重点&#xff1a…...

C# 图解教程 第5版 —— 第1章 C# 和 .NET 框架

文章目录 1.1 在 .NET 之前1.2 .NET 时代1.2.1 .NET 框架的组成1.2.2 大大改进的编程环境 1.3 编译成 CIL1.4 编译成本机代码并执行1.5 CLR1.6 CLI1.7 各种缩写1.8 C# 的演化1.9 C# 和 Windows 的演化&#xff08;*&#xff09; 1.1 在 .NET 之前 MFC&#xff08;Microsoft Fou…...

electronjs入门-聊天应用程序,与Electron.js通信

随着第一章中构建的应用程序&#xff0c;我们将开始将其与Electron框架中的模块集成&#xff0c;并以此为基础&#xff0c;以更实用的方式了解它们。 过程之间的通信 根据第二章中的解释&#xff0c;我们将发送每个进程之间的消息&#xff1b;具体来说联系人和聊天&#xff1…...

【自用】ubuntu 18.04 LTS安装opencv 3.4.16 + opencv_contrib 3.4.16

1.下载 opencv 3.4.16 opencv_contrib 3.4.16 其中&#xff0c;opencv_contrib解压后的多个文件夹复制到opencv内、合并 声明&#xff1a;尚未验证该方式是否可行 2.安装 参考博文&#xff1a; https://zhuanlan.zhihu.com/p/650792342 https://zhuanlan.zhihu.com/p/8719780…...

递归解析Json,实现生成可视化Tree+快速获取JsonPath | 京东云技术团队

内部平台的一个小功能点的实现过程&#xff0c;分享给大家&#xff1a; 递归解析Json&#xff0c;可以实现生成可视化Tree快速获取JsonPath。 步骤&#xff1a; 1.利用JsonPath读取根&#xff0c;获取JsonObject 2.递归层次遍历JsonObjec&#xff0c;保存结点信息 3.利用z…...

GraceUI相关的 知识

调试工具&#xff1a;UniApp提供了一些调试工具和插件&#xff0c;如uni-app-cli、调试器等&#xff0c;可以帮助你更好地定位和解决问题。同时&#xff0c;使用浏览器的开发者工具或模拟器的调试功能&#xff0c;可以更直观地观察页面效果和调试代码。 对于 GraceUI 的普通版本…...

三十二、【进阶】hash索引结构

1、hash索引结构 &#xff08;1&#xff09;简述&#xff1a; hash索引&#xff0c;就是采用一定的hash算法&#xff0c;将键值换算成新的hash值&#xff0c;映射到对应的槽位上&#xff0c;然后存储在hash表中。 &#xff08;2&#xff09;图示&#xff1a; 2、hash索引结构…...

如果有一天AI能自主编程了,程序员还有前途吗?

人们一直想知道人工智能&#xff08;AI&#xff09;等新技术将如何影响就业。如今的一个大问题是&#xff1a;人工智能会接管程序员的角色吗&#xff1f; 编程主要是关于人们学习计算机语言&#xff0c;这需要大量的时间和努力。但人工智能正在改变这一点。像 GPT-4 这样的系统…...

深求·墨鉴(DeepSeek-OCR-2)完整指南:从卷轴入画到经纬重现

深求墨鉴&#xff08;DeepSeek-OCR-2&#xff09;完整指南&#xff1a;从卷轴入画到经纬重现 1. 引言&#xff1a;当科技遇见水墨美学 在日常工作中&#xff0c;我们经常需要将纸质文档转换为可编辑的电子文本。传统的OCR工具往往界面复杂、操作繁琐&#xff0c;让人望而却步…...

从理论到拟合:如何让ADS差分线前仿真结果更贴近实际PCB?我的经验复盘

从理论到拟合&#xff1a;如何让ADS差分线前仿真结果更贴近实际PCB&#xff1f;我的经验复盘 在高速数字电路设计中&#xff0c;差分传输线的信号完整性仿真一直是工程师面临的挑战。许多团队投入大量时间进行前仿真&#xff0c;却发现仿真结果与实测数据存在显著差异。这种差距…...

Flash内容重生:CefFlashBrowser如何让经典Flash游戏与课件重获新生

Flash内容重生&#xff1a;CefFlashBrowser如何让经典Flash游戏与课件重获新生 【免费下载链接】CefFlashBrowser Flash浏览器 / Flash Browser 项目地址: https://gitcode.com/gh_mirrors/ce/CefFlashBrowser 你是否还在怀念那些曾经风靡一时的Flash游戏&#xff1f;是…...

Waymo Open Dataset Docker部署:环境配置与容器化最佳实践

Waymo Open Dataset Docker部署&#xff1a;环境配置与容器化最佳实践 【免费下载链接】waymo-open-dataset Waymo Open Dataset 项目地址: https://gitcode.com/gh_mirrors/wa/waymo-open-dataset Waymo Open Dataset是自动驾驶领域的重要开源项目&#xff0c;提供了丰…...

RexUniNLU案例集:制造业设备报修场景中,‘异响’‘漏油’‘停机’故障标签识别效果

RexUniNLU案例集&#xff1a;制造业设备报修场景中&#xff0c;‘异响’‘漏油’‘停机’故障标签识别效果 1. 引言&#xff1a;当设备“说话”时&#xff0c;我们如何听懂&#xff1f; 想象一下这个场景&#xff1a;在一条繁忙的生产线上&#xff0c;一台关键设备突然发出“…...

从零到部署:手把手教你用Django+OpenCV搭建一个能识别交通标志的“智能眼”(附完整源码)

实战指南&#xff1a;用DjangoOpenCV构建高精度交通标志识别系统 1. 环境配置与项目初始化 在开始构建交通标志识别系统前&#xff0c;需要准备完善的开发环境。以下是经过验证的配置方案&#xff1a; 核心工具栈选择&#xff1a; Python 3.9&#xff08;推荐3.10.6版本&#x…...

如何为 Play With Docker 贡献代码:社区参与与开发流程详解

如何为 Play With Docker 贡献代码&#xff1a;社区参与与开发流程详解 【免费下载链接】play-with-docker You know it, you use it, now its time to improve it. PWD!. 项目地址: https://gitcode.com/gh_mirrors/pl/play-with-docker Play With Docker&#xff08;P…...

蓝桥杯备赛避坑指南:PWM互补输出和死区设置里那些容易忽略的细节

蓝桥杯嵌入式实战&#xff1a;PWM互补输出与死区设置的七个致命误区 在蓝桥杯嵌入式赛道的竞赛环境中&#xff0c;PWM互补输出功能几乎是每年必考的核心考点。但令人惊讶的是&#xff0c;超过60%的参赛选手会在死区设置和互补通道配置环节出现严重错误——轻则导致波形异常影响…...

电动循迹小车坡道行驶系统设计与实现

1. 坡道行驶电动小车设计解析1.1 系统概述本设计实现了一款具备坡道行驶能力的电动循迹小车系统&#xff0c;采用差速转向方案完成固定路径的循迹功能。系统核心功能包括&#xff1a;四路光电传感器黑线检测差速转向控制算法可编程坡道动力补偿自动停车功能2. 硬件设计2.1 主控…...

原神抽卡数据分析终极指南:genshin-wish-export完全使用教程

原神抽卡数据分析终极指南&#xff1a;genshin-wish-export完全使用教程 【免费下载链接】genshin-wish-export biuuu/genshin-wish-export - 一个使用Electron制作的原神祈愿记录导出工具&#xff0c;它可以通过读取游戏日志或代理模式获取访问游戏祈愿记录API所需的authKey。…...