-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2110.GetDescentPeriods.cs
43 lines (40 loc) · 1.46 KB
/
2110.GetDescentPeriods.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// 2110. Number of Smooth Descent Periods of a Stock
// You are given an integer array prices representing the daily price history of a stock,
// where prices[i] is the stock price on the ith day.
// A smooth descent period of a stock consists of one or more contiguous days such that the price on each day
// is lower than the price on the preceding day by exactly 1. The first day of the period is exempted from this rule.
// Return the number of smooth descent periods.
// Example 1:
// Input: prices = [3,2,1,4]
// Output: 7
// Explanation: There are 7 smooth descent periods:
// [3], [2], [1], [4], [3,2], [2,1], and [3,2,1]
// Note that a period with one day is a smooth descent period by the definition.
// Example 2:
// Input: prices = [8,6,7,7]
// Output: 4
// Explanation: There are 4 smooth descent periods: [8], [6], [7], and [7]
// Note that [8,6] is not a smooth descent period as 8 - 6 ≠ 1.
// Example 3:
// Input: prices = [1]
// Output: 1
// Explanation: There is 1 smooth descent period: [1]
// Constraints:
// 1 <= prices.length <= 105
// 1 <= prices[i] <= 105
public class Solution {
public long GetDescentPeriods(int[] prices) {
int prev = -1;
long days = 0;
int contiguous = 0;
for(int i = 0; i < prices.Length; i++){
if(prices[i] == prev - 1)
contiguous++;
else
contiguous = 1;
days += contiguous;
prev = prices[i];
}
return days;
}
}