Skip to content

2435-paths-in-matrix-whose-sum-is-divisible-by-k

DevGod
DevGod
Elf Vtuber
/**
* @param {number[][]} grid
* @param {number} k
* @return {number}
*/
var numberOfPaths = function(grid, k) {
const MOD = 1e9 + 7;
let dp = Array.from(
{length:grid.length},
() => Array.from(
{length:grid[0].length},
() => Array(k).fill(0))
);
dp[0][0][ grid[0][0]%k ] = 1;
for(let row = 0; row<grid.length; row++){
for(let col = 0; col<grid[0].length; col++){
let curr = grid[row][col]%k;
for(let A = 0; A<k; A++){
let wrapMod = ((A-curr)%k+k)%k;
if(row-1 >= 0){
dp[row][col][A] += dp[row-1][col][ wrapMod ]%MOD;
}
if(col-1 >= 0){
dp[row][col][A] += dp[row][col-1][ wrapMod ]%MOD;
}
}
}
}
return dp[grid.length-1][grid[0].length-1][0]%MOD;
};