901. 股票价格跨度

2023-10-07 09:36
文章标签 901 跨度 股票价格

本文主要是介绍901. 股票价格跨度,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

设计一个算法收集某些股票的每日报价,并返回该股票当日价格的 跨度 。

当日股票价格的 跨度 被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。

  • 例如,如果未来 7 天股票的价格是 [100,80,60,70,60,75,85],那么股票跨度将是 [1,1,1,2,1,4,6] 。

实现 StockSpanner 类:

  • StockSpanner() 初始化类对象。
  • int next(int price) 给出今天的股价 price ,返回该股票当日价格的 跨度 。

示例:

输入:
["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]
[[], [100], [80], [60], [70], [60], [75], [85]]
输出:
[null, 1, 1, 1, 2, 1, 4, 6]解释:
StockSpanner stockSpanner = new StockSpanner();
stockSpanner.next(100); // 返回 1
stockSpanner.next(80);  // 返回 1
stockSpanner.next(60);  // 返回 1
stockSpanner.next(70);  // 返回 2
stockSpanner.next(60);  // 返回 1
stockSpanner.next(75);  // 返回 4 ,因为截至今天的最后 4 个股价 (包括今天的股价 75) 都小于或等于今天的股价。
stockSpanner.next(85);  // 返回 6

提示:

  • 1 <= price <= 105
  • 最多调用 next 方法 104 次


题解:
用单调栈求解。

栈的元素可以是股票价格的下标(即天数)和股票价格的二元数对,并且在栈中先插入一个最大值作为天数为 −1 天的价格,来保证栈不会为空。调用next时,先将栈中价格小于等于此时 price的元素都弹出,直到遇到一个大于 price 的值,并将 price 入栈,计算下标差返回。

code:

class StockSpanner {Deque<int[]> stack;int idx;public StockSpanner() {stack = new ArrayDeque<int[]>();idx = -1;stack.push(new int[]{idx, Integer.MAX_VALUE});}public int next(int price) {idx++;while (price >= stack.peek()[1]) {stack.pop();}int ret = idx - stack.peek()[0];stack.push(new int[]{idx, price});return ret;}
}

这篇关于901. 股票价格跨度的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/157499

相关文章

[LeetCode] 901. Online Stock Span

题:https://leetcode.com/problems/online-stock-span/ 题目大意 不断给出元素,求当前元素开始往前的最大子串,且串中每个元素的值都小于等于 该元素。 思路 class stockPair{int price;int day;public stockPair(int price,int day){this.price = price;this.d

基于人工智能的股票价格预测系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据收集与预处理模型训练模型预测应用场景结论 1. 引言 股票价格预测是金融市场中一个重要的研究领域,通过分析历史价格数据,投资者希望能够预测未来价格走势,以实现更高的投资回报。本文介绍如何利用深度学习技术构建一个基于人工智能的股票价格预测系统,包括环境准备、系统设计及代码实现。 2. 项目背景 股票市

通过 TS-Mixer 实现股票价格预测

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话:          最近遇到了 Time Mixer 模型,该模型以在复杂数据集上提供令人印象深刻的结果而闻名。出于好奇,我决定将其应用于我在 Kaggle 上找到的数据集,其中包含 Microsoft 的历史股票价格。在本文中,我们将探讨如何利用 Time Mixer 来预测 Microsoft 股票未来某个时段的实

力扣901.股票价格跨度

力扣901.股票价格跨度 单调栈 若当前价格 >= 栈顶元素 弹出栈顶元素找到最远的符合要求的 class StockSpanner {stack<pair<int,int>> st;int cur_day = -1;public:StockSpanner() {st.emplace(-1,INT_MAX);}int next(int price) {while(price >= st.

Matlab数学建模实战应用:案例1 - 股票价格预测

目录 前言 一、问题分析 二、模型选择 三、Matlab代码实现 完整代码示例 四、模型改进 1. 引入更多特征 2. 使用更复杂的模型 3. 模型参数优化 五、实例总结 总结 前言 股票价格预测是金融工程中的重要问题,利用数学建模可以帮助分析和预测股票价格的波动趋势,帮助投资者做出更明智的决策。本文将详细介绍股票价格预测的步骤,包括问题分析、模型选择、Matla

Transformer预测 | 基于Transformer+LSTM股票价格预测时间序列预测(Pytorch)

效果一览 基本介绍 股票行情是引导交易市场变化的一大重要因素,若能够掌握股票行情的走势,则对于个人和企业的投资都有巨大的帮助。然而,股票走势会受到多方因素的影响,因此难以从影响因素入手定量地进行衡量。但如今,借助于机器学习,可以通过搭建网络,学习一定规模的股票数据,通过网络训练,获取一个能够较为准确地预测股票行情的模型,很大程度地帮助我们掌握股票的走势。本项目搭建了Transformer+

大跨度气膜综合馆有哪些应用场景—轻空间

1. 体育场馆 气膜综合馆广泛应用于各类体育场馆,如足球场、篮球场、网球场、游泳馆等,满足不同体育项目的需求。  2. 大型展览 气膜馆的宽敞空间和灵活布局,非常适合举办各类大型展览、交易会和博览会,提供充足的展示和活动空间。  3. 演艺活动 作为临时或永久性的演艺场馆,气膜馆可以快速搭建,为音乐会、戏剧演出、文艺汇演等提供理想的场地。  4. 应急救援 在自然灾害和

Adaboost集成学习 | Matlab实现基于CNN-LSTM-Adaboost集成学习时间序列预测(股票价格预测)

目录 效果一览基本介绍模型设计程序设计参考资料 效果一览 基本介绍 Adaboost集成学习 | Matlab实现基于CNN-LSTM-Adaboost集成学习时间序列预测(股票价格预测) 模型设计 融合Adaboost的CNN-LSTM模型的时间序列预测,下面是一个基本的框架。 数据准备: 收集并整理用于时间序列预测的数据集。确保数据集包含时间序列的输入

【机器学习】深入探索机器学习:利用机器学习探索股票价格预测的新路径

❀机器学习 📒1. 引言📒2. 多种机器学习算法的应用📒3. 机器学习在股票价格预测中的应用现状🎉数据收集与预处理🎉模型构建与训练🌈模型评估与预测🌞模型评估🌙模型预测⭐注意事项 📒4. 研究挑战与前景🌊挑战💧前景🔥未来展望 📒1. 引言 在快节奏的金融市场中,股票价格预测一直是一项具有极高价值和挑战性的任务。传统的股票分析往往依赖于经验丰富

1. 基于时间序列分析的股票价格波动预测模型:深度探索与实际应用

在当今经济环境下,股票市场无疑是投资者们密切关注的重要领域。然而,股票价格的波动常常令投资者感到困扰,难以捉摸其变化规律。因此,构建一种能够有效预测股票价格波动趋势的模型显得尤为重要。本文将深入探讨基于时间序列分析的股票价格波动预测模型,旨在揭示股票市场的运行规律,并为投资者提供有价值的参考信息。 首先,我们需要明确时间序列分析的基本原理。时间序列分析是一种通过研究数据随时间变化的规律来预测