Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.81 KB | None | 0 0
  1.     private int countWaysV2(int[][] M, int[] s, int[] e, int k) {
  2.         int row = M.length;
  3.         int col = M[0].length;
  4.  
  5.         int[][][] dp = new int[k + 1][row][col];
  6.         dp[0][s[0]][s[1]] = 1;
  7.  
  8.         for(int i = 1; i <= k; i++) {
  9.  
  10.             int[] dx = {1, 1, -1, -1, 2, 2, -2, -2};
  11.             int[] dy = {2, -2, 2, -2, 1, -1, 1, -1};
  12.  
  13.             for(int j = 0; j < row; j++) {
  14.                 for(int l = 0; l < col; l++) {
  15.                     for(int d = 0; d < 8; d++) {
  16.                         int xx = j - dx[d];
  17.                         int yy = l - dy[d];
  18.  
  19.                         if (isValid(M, xx, yy)) {
  20.                             dp[i][j][l] += dp[i-1][xx][yy];
  21.                         }
  22.                     }
  23.                 }
  24.             }
  25.         }
  26.  
  27.         return dp[k][row - 1][col - 1];
  28.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement