3660: Jump Game IX
Problem Statement
You are given an integer array nums
.
From any index i
, you can jump to another index j
under the following rules:
- Jump to index
j
wherej > i
is allowed only ifnums[j] < nums[i]
. - Jump to index
j
wherej < i
is allowed only ifnums[j] > nums[i]
.
For each index i
, find the maximum value in nums
that can be reached by following any sequence of valid jumps starting at i
.
Return an array ans
where ans[i]
is the maximum value reachable starting from index i
.
Example 1:
Input: nums = [2,1,3]
Output: [2,2,3]
Explanation:
- For
i = 0
: No jump increases the value. - For
i = 1
: Jump toj = 0
asnums[j] = 2
is greater thannums[i]
. - For
i = 2
: Sincenums[2] = 3
is the maximum value innums
, no jump increases the value.
Thus, ans = [2, 2, 3]
.
Example 2:
Input: nums = [2,3,1]
Output: [3,3,3]
Explanation:
- For
i = 0
: Jump forward toj = 2
asnums[j] = 1
is less thannums[i] = 2
, then fromi = 2
jump toj = 1
asnums[j] = 3
is greater thannums[2]
. - For
i = 1
: Sincenums[1] = 3
is the maximum value innums
, no jump increases the value. - For
i = 2
: Jump toj = 1
asnums[j] = 3
is greater thannums[2] = 1
.
Thus, ans = [3, 3, 3]
.
Constraints:
1 <= nums.length <= 105
1 <= nums[i] <= 109
Code Solution