Guest User

Untitled

a guest
Mar 10th, 2023
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | Source Code | 0 0
  1. uint dp[1000];
  2.  
  3. class Solution {
  4.     auto dfs(vector<int>& a, int i, int d) {
  5.         if (dp[i]) return dp[i];
  6.         int n = a.size();
  7.         uint ret = 1;
  8.         for (int j = i + 1; j <= n - 1 and j <= i + d and a[j] < a[i]; j++)
  9.             ret = max(ret, dfs(a, j, d) + 1);
  10.         for (int j = i - 1; j >= 0 and j >= i - d and a[j] < a[i]; j--)
  11.             ret = max(ret, dfs(a, j, d) + 1);
  12.         dp[i] = ret;
  13.         return ret;
  14.     }
  15. public:
  16.     int maxJumps(vector<int>& a, int d) {
  17.         uint n = a.size();
  18.         memset(dp, 0, n * sizeof(dp[0]));
  19.         uint ret = 1;
  20.         for (uint i = 0; i < n; i++) {
  21.             ret = max(ret, dfs(a, i, d));
  22.         }
  23.         return ret;
  24.     }
  25. };
Advertisement
Add Comment
Please, Sign In to add comment