3993. Maximum Value of an Alternating Sequence
Description
You are given three integers n, s, and m.
A sequence seq of integers of length n is considered valid if:
seq[0] = s.- The sequence is alternating, meaning that either:
seq[0] > seq[1] < seq[2] > ..., orseq[0] < seq[1] > seq[2] < ....
- For every adjacent pair,
|seq[i] - seq[i - 1]| <= m.
A sequence of length 1 is considered alternating.
Return the maximum possible element that can appear in any valid sequence.
Β
Example 1:
Input: n = 4, s = 3, m = 5
Output: 12
Explanation:
- One valid sequence is
[3, 8, 7, 12]. - The maximum element in the sequence is 12.
Example 2:
Input: n = 2, s = 4, m = 3
Output: 7
Explanation:
- One valid sequence is
[4, 7]. - The maximum element in the sequence is 7.
Β
Constraints:
1 <= n, s <= 1091 <= m <= 105
Solutions
Solution 1: Greedy
If \(n = 1\), the sequence contains only the starting value \(s\), so the answer is \(s\).
Otherwise, the sequence length is at least \(2\). Since the absolute difference between adjacent elements is at most \(m\), and the sequence must strictly alternate up and down, to maximize some element we should repeatedly "rise by \(m\), then fall by \(1\)": the fall step is taken as the minimum value \(1\) so that the next rise has the largest possible room.
Construct the sequence in a "rise first" pattern:
With length \(n\), we can complete \(\lfloor n / 2 \rfloor\) rises, and the peak after the \(k\)-th rise is \(s + k(m - 1) + 1\). Therefore, the maximum element is:
Starting with a fall only decreases the values first and cannot produce a larger peak, so the construction above is optimal.
The time complexity is \(O(1)\), and the space complexity is \(O(1)\).
1 2 3 4 5 | |
1 2 3 4 5 6 7 8 | |
1 2 3 4 5 6 7 8 9 | |
1 2 3 4 5 6 | |
1 2 3 4 5 6 | |