news 2026/7/28 0:56:50

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/7/26 14:12:48

9、虚拟空调制解调器案例研究与Newbus驱动开发

虚拟空调制解调器案例研究与Newbus驱动开发 虚拟空调制解调器相关函数解析 在虚拟空调制解调器的实现中,有多个关键函数发挥着重要作用。 1. nmdm_modevent函数 static int nmdm_modevent(module_t mod __unused, int event, void *arg __unused) {static eventhandler…

作者头像 李华
网站建设 2026/7/25 20:09:01

13、并行端口打印机驱动及资源管理使用详解

并行端口打印机驱动及资源管理使用详解 并行端口打印机驱动函数分析 lpt_timeout 函数 功能 :该函数是 lpt(4) 的回调函数,用于处理丢失或未处理的中断。 代码示例 : static void lpt_timeout(void *arg) {struct lpt_data *sc = arg;device_t lpt_dev = sc->sc_d…

作者头像 李华
网站建设 2026/7/27 0:55:33

21、USB 驱动与网络驱动数据结构解析

USB 驱动与网络驱动数据结构解析 1. USB 打印机驱动函数详解 USB 打印机驱动在实现打印功能时涉及多个关键函数,这些函数负责处理打印机的打开、关闭、读写操作以及状态检查等任务。 1.1 unlpt_open 函数 该函数用于打开打印机,其执行流程如下: 1. 测试 sc->sc_ffl…

作者头像 李华
网站建设 2026/7/26 3:11:08

基于SpringBoot的旅游网站(11492)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告&#xff09;远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/7/27 1:36:52

LeetCode27. 移除元素

解法一&#xff1a;个人暴力解法完整代码&#xff1a;public int RemoveElement(int[] nums, int val) {int count 0;for (int i 0; i < nums.Length; i){if (nums[i] ! val) count;else nums[i] -1;}for (int i 0; i < nums.Length; i){if (nums[i] -1){for (int j…

作者头像 李华