diff --git a/1463-Cherry-Pickup-II/cherry_pickup_ii.cpp b/1463-Cherry-Pickup-II/cherry_pickup_ii.cpp deleted file mode 100644 index 4c2c935..0000000 --- a/1463-Cherry-Pickup-II/cherry_pickup_ii.cpp +++ /dev/null @@ -1,118 +0,0 @@ -class Solution { -public: - - // 3D -> 2D - - int solve(int i , int j1, int j2, int rows,int m, vector>& grid, vector>> &dp) - { - if(j1<0 || j2<0 || j1>=m || j2>=m) - { - return -1e8; - } - if(i==rows-1) - { - if(j1==j2) - { - return grid[i][j1]; - } - else - { - return grid[i][j1]+grid[i][j2]; - } - } - if(dp[i][j1][j2]!=-1) - { - return dp[i][j1][j2]; - } - - // explore all paths - int mx = -1e8; - for(int d1 =-1; d1<=1; d1++) - { - for(int d2 = -1; d2<=1; d2++) - { - int value=0; - if(j1==j2) - { - value = grid[i][j1] ; - } - else - { - value = grid[i][j1] + grid[i][j2] ; - } - value += solve(i+1, j1+d1, j2+d2, rows, m, grid, dp); - mx = max(mx, value); - } - } - return dp[i][j1][j2] = mx; - } - - int cherryPickup(vector>& grid) { - - int n = grid.size(); - int m = grid[0].size(); - - // dp[r][c][c]; - // vector>> dp(n, vector>(m, vector(m, -1))); - - vector> front(m, vector(m,0)); - vector> curr(m, vector(m,0)); - - // return solve(0, 0, m-1, n,m, grid, dp); - - // base cases - for(int j1 =0; j1=0; i--) - { - for(int j1=0; j1=0 && j1+d1=0 && j2+d2