-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path1340.cpp
More file actions
33 lines (32 loc) · 1011 Bytes
/
1340.cpp
File metadata and controls
33 lines (32 loc) · 1011 Bytes
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
class Solution {
public:
int maxJumps(vector<int>& arr, int d) {
int n = arr.size();
vector<int> dp(n, 1);
vector<pair<int, int>> arrIdx;
for (int i = 0; i < n; ++i) {
arrIdx.push_back({arr[i], i});
}
sort(arrIdx.begin(), arrIdx.end());
int res = 1;
for (auto [num, idx] : arrIdx) {
int first = max(0, idx - d);
int last = min(n - 1, idx + d);
for (int cur = idx - 1; cur >= first; cur--) {
if (arr[cur] > num) {
dp[cur] = max(dp[cur], dp[idx] + 1);
res = max(res, dp[cur]);
break;
}
}
for (int cur = idx + 1; cur <= last; cur++) {
if (arr[cur] > num) {
dp[cur] = max(dp[cur], dp[idx] + 1);
res = max(res, dp[cur]);
break;
}
}
}
return res;
}
};