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

news2024/11/28 14:35:07

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

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

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

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

首先我们要获取股票的最大和最小价格,那么意味着我们需要对价格排序,我们要获取时间戳最大的数据,那么我们要对时间戳排序。既然都要排序,那么我们就无法在一个容器中同时实现,可以自动排序的容器有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中最后一个元素的second
        return (*(m.rbegin())).second;
    }
    
    int maximum() {
        //set底层自动排序,直接返回set中最后一个元素
        return (*(s.rbegin()));
    }
    
    int minimum() {
        //set底层自动排序,直接返回set中第一个元素
        return (*(s.begin()));
    }
};

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

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

相关文章

C++11 Qt QFutureWatcher lambda

目录 Lambda 介绍 【QT】Qt之QFutureWatcher 简述 传参&#xff1a; 还可以使用 QProgressDialog 作为阻堵 函数&#xff0c;变成同步&#xff1b; 完成后&#xff0c;关闭&#xff1b; MyQProgressDialog 效果&#xff1a; Lambda 介绍 Lambda 函数也叫匿名函数&…

Hadoop使用hdfs指令查看hdfs目录的根目录显示被拒

背景 分布式部署hadoop,服务机只有namenode节点,主机包含其他所有节点 主机关机后,没有停止所有节点,导致服务机namenode继续保存 再次开启主机hadoop,使用hdfs查看hdfs根目录的时候显示访问被拒 解决方案 1.主机再次开启hadoop并继续执行关闭 2.服务器再次开启hadoop并继…

强化学习入门

简介 什么是强化学习 强化学习是一种机器学习方法&#xff0c;它可以帮助计算机学会在不断尝试和经验积累中做出最佳决策。用通俗的方式来说&#xff0c;强化学习就像是训练一只宠物狗学会做任务一样。 想象一只狗要学会取球。一开始&#xff0c;它可能不知道该怎么做&#…

回顾Softing 2023工博之旅精彩瞬间

2023年9月23日&#xff0c;为期5天的第23届中国国际工业博览会&#xff08;CIIF&#xff09;于上海国家会展中心圆满落幕。Softing作为PROFIBUS创始人之一&#xff0c;德国工业4.0的领军企业之一&#xff0c;在本次展会上向大家呈现了众多工业自动化及IT网络方面的领先产品及方…

深度学习笔记之优化算法(四)Nesterov动量方法的简单认识

机器学习笔记之优化算法——Nesterov动量方法的简单认识 引言回顾&#xff1a;梯度下降法与动量法Nesterov动量法Nesterov动量法的算法过程描述总结 引言 上一节对动量法进行了简单认识&#xff0c;本节将介绍 Nesterov \text{Nesterov} Nesterov动量方法。 回顾&#xff1a;…

在SOLIDWORKS搭建一个简易的履带式机器人

文章目录 前言一、构建模型基本单元二、搭建车体模块三.插入轮子4.构建履带 前言 趁着十一假期&#xff0c;在solidworks中搭建了一个履带式机器人小车&#xff0c;计划将其应用在gazebo中完成多机器人编队的仿真。 一、构建模型基本单元 构建底板&#xff08;a面&#xff09…

第六讲:构建类的事件(下)

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程&#xff0c;目前已经是第一版修订了。这套教程定位于最高级&#xff0c;是学完初级&#xff0c;中级后的教程。 类&#xff0c;是非常抽象的&#xff0c;更具研究的价值。随着我们学习、应用VBA的深入&#xff0…

.some方法、vh、多列布局、DNS域名解析过程、空页面文字内容渲染

nodeEndTime.some((time) > !!time&#xff09; 这个方法主要用来判断nodeEndTime这个数组中是否有至少一个非假值的元素。它会遍历 nodeEndTime 数组中的每个元素&#xff0c;如果至少有一个元素是真值&#xff08;不是 null、undefined、0、false 或空字符串等假值&#x…

Flutter学习笔记

此篇文章用来记录学习Flutter 和 Dart 相关知识 零.Dart基本数据类型 Dart 是一种静态类型的编程语言&#xff0c;它提供了一系列基本数据类型&#xff0c;用于存储和操作不同种类的数据。以下是 Dart 中的一些基本数据类型以及它们的详细介绍&#xff1a; 1. 整数类型&#…

python学习——各种模块argparse、os、sys、time、re、sched、函数体

python学习——各种模块argparse、os、sys、time、re、sched、函数体 各种模块学习1. python脚本2. argparse模块&#xff1a;撰写帮助文档&#xff0c;命令行参数定义等3. os模块&#xff1a;用于文件/目录路径或名字的获取4. sys模块&#xff1a;用于对命令行参数进行获取处理…

车企“新四化”之——安全高效的电动汽车和混动汽车高压测量方案

一 背景 汽车行业正经历着“新四化”从概念向实际转化的过程&#xff08;新四化即电动化、智能化、网络化、共享化&#xff09;&#xff0c;各大车企也将调整发展布局&#xff0c;而混合动力及电动汽车自然就成为了主要关注点。 对于混合动力汽车&#xff08;PHEV&#xff09…

ReentrantLock锁与AQS的联系

请先看——————>AQS的简单说明 ReentrantLock底层是基于AQS实现的&#xff0c;在并发编程中可以实现公平锁和非公平锁来对同步资源进行控制&#xff0c;默认是非公平锁&#xff0c;并且是可重入锁。 1.ReentrantLock的体系关联结构 2.构造方法 可以发现ReentrantLock…

Spring Security——基于前后端分离项目的使用(安全框架)

1.简介 Spring Security有一个过滤器链&#xff0c;也就是说原本在拦截器和过滤器里面做的事都可以用Spring Security完成&#xff0c;比如验证token和将用户id存入线程上下文局部变量等等。 入门案例 创建项目并勾选依赖 最基本的要这两个依赖即可 新建一个Controller层的…

Dubbo v Spring Cloud:两大技术栈如何选型?

Java全能学习面试指南&#xff1a;https://javaxiaobear.cn 提到微服务开源框架&#xff0c;不可不说的是 Dubbo 和 Spring Cloud&#xff0c;这两大框架应该是大家最熟悉的微服务解决方案&#xff0c;也是面试中的热点。今天我们梳理下 Dubbo 和 Spring Cloud 的应用特性&…

win10 U盘安装教程

一年内&#xff0c;第三次重装电脑了&#xff0c;我必须要写一份教程了。从制作U盘开始&#xff0c;到重装系统&#xff0c;全部都记录一下&#xff0c;以备不时之需。 首先&#xff0c;找一个U盘&#xff0c;如果U盘内有需要文件&#xff0c;请自行备份&#xff0c;因为这个U盘…

“双节”出游,VR智慧景区让你的旅游更具“心价比”

中秋国庆八天长假落幕&#xff0c;全国旅游消费市场人气旺、活力足&#xff0c;黄金周旅游消费的变化凝结成为新的文旅趋势&#xff0c;更多的游客会选择人少、景美、价优的错峰游&#xff0c;为了享受品质游玩&#xff0c;VR全景展示为众多游客带来旅游新体验&#xff0c;让你…

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测

分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测 目录 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.MATLAB实现KOA-CNN-BiLST…

洗地机怎么选?2023年洗地机推荐

洗地机结合洗地、拖地、扫地的功能&#xff0c;在日常生活中备受关注&#xff0c;他能帮助我们更加节省时间和节省体力&#xff0c;但是面对参差不齐的洗地机市场如何选到适合自己的呢&#xff0c;下文整理了几款非常值得入手的性价比型号&#xff0c;供大家选择参考。 一、CE…

SpringBoot项目创建

创建SpringBoot项目&#xff1a; 选择maven项目&#xff0c;选择Java版本 选择springboot版本&#xff08;这里随便选择&#xff0c;后面会进行更改&#xff0c;用不到这么高的版本&#xff09;&#xff0c;选择所需要的对应工具。 然后下一步即可。 配置修改 &#xff0c;结构…

7346-2015 控制电机基本外形结构型式

声明 本文是学习GB-T 7346-2015 控制电机基本外形结构型式.pdf而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了控制电机的机座号、外形及安装尺寸、轴伸型式、出线方式、标记及铭牌。 本标准适用于各类控制电机(以下简称电机),其…