声明:只求用最简单的方法通过,不求优化,不喜勿喷
- dp思想来做,但是不需要开数组
- 记录连续增长的时间,举个例子,如果[4321],那么
- 4的时候包含4的结果是 4(1)
- 3的时候包含3的结果是 43 和 3(2),就是上一天的数量+当天本身
- 2的时候是 432 、32 和 2(3)
- 以此类推,每天包含的当前股票值的子序列就是连续的天数,因此如果当天是连续的,那么连续天数+1,反之,连续天数置为1,sum加上连续的天数,最后的和就是答案
/**
* @param {number[]} prices
* @return {number}
*/
var getDescentPeriods = function (prices) {
let go = 1;
let sum = 1;
for (var i = 1; i < prices.length; i++) {
if (prices[i] - prices[i - 1] == -1) {
go++;
} else {
go = 1
}
sum += go;
}
return sum;
};