2025-12-15 21:33:29 +0300 MSK
Number of Smooth Descent Periods of a Stock
Links
Code
class Solution:
def getDescentPeriods(self, prices: List[int]) -> int:
n = len(prices)
res = 1 # total number of smooth descending periods, initial value is dp[0]
prev = 1 # total number of smooth descending periods ending with the previous element, initial value is dp[0]
# traverse the array starting from 1, and update prev and the total res according to the recurrence relation
for i in range(1, n):
if prices[i] == prices[i - 1] - 1:
prev += 1
else:
prev = 1
res += prev
return res