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 <= 105
1 <= prices[i] <= 105
思路
days保存下降阶段的持续天数,则到第i天的下降阶段为res+days
源码
function getDescentPeriods(prices: number[]): number {
//days保存下降阶段的持续天数,则到第i天的下降阶段为res+days
let res=1,days=1;
const len=prices.length;
for(let i=1;i<len;i++){
if(prices[i-1]-prices[i]==1)days++;
else days=1;
res+=days;
}
return res;
};
结果
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果