2
public double knightProbability(int n, int k, int row, int column) {3
double[][] curr = new double[n][n];4
double[][] next = new double[n][n];8
int[][] dir = {{-2, 1}, {-1, 2}, {1, 2}, {2, 1}, {2, -1}, {1, -2}, {-1, -2}, {-2, -1}};9
for (int p = 1; p <= k; p++) {10
for (int i = 0; i < n; i++) {11
for (int j = 0; j < n; j++) {12
if (curr[i][j] != 0) {14
for (int d = 0; d < 8; d++) {15
int ni = i + dir[d][0];16
int nj = j + dir[d][1];18
if (ni < 0 || nj < 0 || ni >= n || nj >= n) {22
next[ni][nj] += curr[i][j] / 8.0;29
next = new double[n][n];34
for (int i = 0; i < n; i++) {35
for (int j = 0; j < n; j++) {