leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2684.cpp (729B)


0 class Solution {
1 public:
2 int maxMoves(const vector<vector<int>> &grid) const {
3 const int n = size(grid), m = size(grid[0]);
4 static int dp[1001];
6 memset(dp, 0x00, sizeof(dp));
7 for (int j = m - 2; j >= 0; j--) {
8 for (int i = 0, prev; i < n; i++) {
9 int crnt = 0;
10 if (i > 0 && grid[i][j] < grid[i - 1][j + 1]) crnt = max(crnt, prev + 1);
11 if (grid[i][j] < grid[i][j + 1]) crnt = max(crnt, dp[i] + 1);
12 if (i < n - 1 && grid[i][j] < grid[i + 1][j + 1]) crnt = max(crnt, dp[i + 1] + 1);
13 prev = dp[i];
14 dp[i] = crnt;
15 }
16 }
18 return *max_element(dp, dp + n);
19 }
20 };