LeetCode 2110.股票平滑下跌阶段的数目

给你一个整数数组 prices ,表示一支股票的历史每日股价,其中 pricesi 是这支股票第 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, 77

由于 8 - 6 ≠ 1 ,所以 8,6 不是平滑下降阶段。

示例 3:

输入:prices = 1

输出:1

解释:总共有 1 个平滑下降阶段:1

提示:

1 <= prices.length <= 105^55

1 <= pricesi <= 105^55

分组循环,每一组都是平滑下跌阶段,找出全部阶段:

cpp 复制代码
class Solution {
public:
    long long getDescentPeriods(vector<int>& prices) {
        int n = prices.size();

        long long ans = 0;

        int i = 0;
        while (i < n) {
            int start = i;
            ++i;
            while (i < n && prices[i] + 1 == prices[i - 1]) {
                ++i;
            }

            int day = i - start;
            ans += (long long)day * (day + 1) / 2;
        }

        return ans;
    }
};

如果prices的长度为n,则此算法时间复杂度为O(n),空间复杂度为O(1)。

相关推荐
爱刷碗的苏泓舒1 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
烬羽4 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法
闪电悠米4 小时前
力扣hot100-41.缺失的第一个正数-原地哈希详解
数据结构·算法·哈希算法
WL学习笔记5 小时前
堆(数据结构)
数据结构·
星空露珠5 小时前
28种颜色对应名称,
开发语言·数据库·算法·游戏·lua
QXWZ_IA6 小时前
桥梁数字孪生怎么落地?
人工智能·科技·算法·智能硬件·政务
Kel7 小时前
输出层与反分词(Output Layer & Detokenization)
人工智能·算法·架构
陕西企来客7 小时前
2026年7月技术好GEO优化方案:算法适配与内容策略
人工智能·算法·机器学习·技术好geo优化
风栖柳白杨7 小时前
【面试】AI算法工程师_空白自测版本
人工智能·算法·面试
闪电悠米8 小时前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵