leetcode 2110
2026/5/17 4:39:29 网站建设 项目流程

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

示例 1 的 prices=[3,2,1,4],按照子数组的右端点下标分组,有这些连续递减子数组:

  • 右端点 i=0:[3]
  • 右端点 i=1:[3,2],[2]
  • 右端点 i=2:[3,2,1],[2,1],[1]
  • 右端点 i=3:[4]

思路:在遍历 prices 的同时,统计当前这段连续递减的长度 last_d。

long long ans = 1; // 第一个元素自己算一个
  • 1 <= prices.length <= 10^5
class Solution { public: long long getDescentPeriods(vector<int>& prices) { int n=prices.size(),last_d=1; // 当前连续平滑段长度(≥1) long long ans=1; for(int i=1;i<n;i++){ if(prices[i-1]-prices[i]==1) last_d++; else last_d=1; ans+=last_d; } return ans; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询