news 2026/6/10 11:45:47

leetcode 2110. 股票平滑下跌阶段的数目 中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 2110. 股票平滑下跌阶段的数目 中等

给你一个整数数组prices,表示一支股票的历史每日股价,其中prices[i]是这支股票第i天的价格。

一个平滑下降的阶段定义为:对于连续一天或者多天,每日股价都比前一日股价恰好少1,这个阶段第一天的股价没有限制。

请你返回平滑下降阶段的数目。

示例 1:

输入:prices = [3,2,1,4]输出:7解释:总共有 7 个平滑下降阶段: [3], [2], [1], [4], [3,2], [2,1] 和 [3,2,1] 注意,仅一天按照定义也是平滑下降阶段。

示例 2:

输入:prices = [8,6,7,7]输出:4解释:总共有 4 个连续平滑下降阶段:[8], [6], [7] 和 [7] 由于 8 - 6 ≠ 1 ,所以 [8,6] 不是平滑下降阶段。

示例 3:

输入:prices = [1]输出:1解释:总共有 1 个平滑下降阶段:[1]

提示:

  • 1 <= prices.length <= 10^5
  • 1 <= prices[i] <= 10^5

分析:遍历 prices 数组,比较当前的 price 比上一个 price 是否小 1,如果是,说明是平滑下降,对应的平滑下降长度 len 增加 1;否则记录一个平滑下降的区间,此时答案增加 (len+1)*len/2.

long long getDescentPeriods(int* prices, int pricesSize) { long long ans=0; int temp=prices[0],len=1; for(int i=1;i<pricesSize;++i) { if(prices[i]==temp-1)len++; else ans+=1LL*(len+1)*len/2LL,len=1; temp=prices[i]; } ans+=1LL*(len+1)*len/2LL,len=1; return ans; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:25:39

LangGraph与LangChain如何协同工作?

LangGraph 与 LangChain 是深度协同、互补增强的关系。LangGraph 并不是取代 LangChain&#xff0c;而是在其基础上扩展了复杂控制流的能力&#xff0c;使得开发者可以构建更强大、灵活的 AI 应用&#xff08;尤其是智能体系统&#xff09;。以下是它们如何协同工作的详细说明&…

作者头像 李华
网站建设 2026/6/10 0:39:51

14、深入探索硬件驱动:内存屏障、LED驱动与IPMI驱动解析

深入探索硬件驱动:内存屏障、LED驱动与IPMI驱动解析 在硬件与软件交互的世界里,驱动程序扮演着至关重要的角色。它们就像是桥梁,连接着操作系统和硬件设备,使得两者能够顺畅地沟通和协作。本文将深入探讨内存屏障、LED驱动以及智能平台管理接口(IPMI)驱动的相关知识,带…

作者头像 李华
网站建设 2026/6/10 14:11:13

16、深入理解FreeBSD中的DMA管理与存储驱动

深入理解FreeBSD中的DMA管理与存储驱动 1. 直接内存访问(DMA)管理 在系统开发中,直接内存访问(DMA)是一种重要的技术,它允许设备直接与内存进行数据传输,而无需CPU的持续干预,从而提高了系统的性能和效率。下面将介绍一些关键的DMA管理函数。 1.1 DMA映射加载函数 …

作者头像 李华
网站建设 2026/6/10 14:11:28

17、存储驱动与通用访问方法详解

存储驱动与通用访问方法详解 1. 存储驱动相关函数 存储驱动中有多个重要函数,下面将详细介绍这些函数的功能和实现。 1.1 at45d_attach 函数 该函数是存储驱动的 device_attach 实现,其代码如下: static int at45d_attach(device_t dev) {struct at45d_softc *sc = …

作者头像 李华
网站建设 2026/6/10 14:11:16

19、通用访问方法与USB驱动详解

通用访问方法与USB驱动详解 1. 通用访问方法(Common Access Method) 通用访问方法涉及到多种操作,下面详细介绍几个重要的操作及其相关结构和代码示例。 1.1 XPT_SET_TRAN_SETTINGS XPT_SET_TRAN_SETTINGS 用于根据 ccb_trans_settings 结构更改当前的传输设置,不过…

作者头像 李华