これは宿題で行き詰まった質問です。どなたか教えていただければ幸いです。
有効なパスは、最初のセル (行 0、列 0) から開始することによって定義され、最後のセル (行 n 列 n )。
例: セル [2][3] に数字 15 がある場合、次の移動は次のようになります: 行に +1、列に +5 から [3][8] または行に +5、行に +1 [7][4] までの列
このメソッドは、有効なパスがいくつあるかを返す必要があります。
この問題に対してバックトレース再帰メソッドを使用しようとしていますが、ループやその他のメソッドは使用できませんが、メソッドをオーバーロードしています。
これが私がこれまでに思いついたコードです:
public static int countPaths (int[][] mat)
{
return countPaths(mat,0,0);
}
private static int countPaths(int[][] mat, int col, int row)
{
if ((col==mat.length-1 && row==mat[0].length-1 ) {
return 1;
}
return countPaths(mat,mat[col][row]/10+col,mat[col][row]%10+row) + countPaths(mat,mat[col][row]%10-col,mat[col][row]/10-row);
}
助けてくれてありがとう!