leetcodeSolution 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]; 5 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 } 17 18 return *max_element(dp, dp + n); 19 } 20 };