Skip to content

Commit d026c37

Browse files
authored
feat: add csharp solution to lc problem: No.2435 (#4862)
1 parent 8517a63 commit d026c37

File tree

3 files changed

+76
-0
lines changed

3 files changed

+76
-0
lines changed

solution/2400-2499/2435.Paths in Matrix Whose Sum Is Divisible by K/README.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,33 @@ impl Solution {
255255
}
256256
```
257257

258+
#### C#
259+
260+
```cs
261+
public class Solution {
262+
public int NumberOfPaths(int[][] grid, int k) {
263+
const int mod = (int) 1e9 + 7;
264+
int m = grid.Length, n = grid[0].Length;
265+
int[,,] f = new int[m, n, k];
266+
f[0, 0, grid[0][0] % k] = 1;
267+
for (int i = 0; i < m; ++i) {
268+
for (int j = 0; j < n; ++j) {
269+
for (int p = 0; p < k; ++p) {
270+
int k0 = ((p - grid[i][j] % k) + k) % k;
271+
if (i > 0) {
272+
f[i, j, p] = (f[i, j, p] + f[i - 1, j, k0]) % mod;
273+
}
274+
if (j > 0) {
275+
f[i, j, p] = (f[i, j, p] + f[i, j - 1, k0]) % mod;
276+
}
277+
}
278+
}
279+
}
280+
return f[m - 1, n - 1, 0];
281+
}
282+
}
283+
```
284+
258285
<!-- tabs:end -->
259286

260287
<!-- solution:end -->

solution/2400-2499/2435.Paths in Matrix Whose Sum Is Divisible by K/README_EN.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,33 @@ impl Solution {
254254
}
255255
```
256256

257+
#### C#
258+
259+
```cs
260+
public class Solution {
261+
public int NumberOfPaths(int[][] grid, int k) {
262+
const int mod = (int) 1e9 + 7;
263+
int m = grid.Length, n = grid[0].Length;
264+
int[,,] f = new int[m, n, k];
265+
f[0, 0, grid[0][0] % k] = 1;
266+
for (int i = 0; i < m; ++i) {
267+
for (int j = 0; j < n; ++j) {
268+
for (int p = 0; p < k; ++p) {
269+
int k0 = ((p - grid[i][j] % k) + k) % k;
270+
if (i > 0) {
271+
f[i, j, p] = (f[i, j, p] + f[i - 1, j, k0]) % mod;
272+
}
273+
if (j > 0) {
274+
f[i, j, p] = (f[i, j, p] + f[i, j - 1, k0]) % mod;
275+
}
276+
}
277+
}
278+
}
279+
return f[m - 1, n - 1, 0];
280+
}
281+
}
282+
```
283+
257284
<!-- tabs:end -->
258285

259286
<!-- solution:end -->
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
public class Solution {
2+
public int NumberOfPaths(int[][] grid, int k) {
3+
const int mod = (int) 1e9 + 7;
4+
int m = grid.Length, n = grid[0].Length;
5+
int[,,] f = new int[m, n, k];
6+
f[0, 0, grid[0][0] % k] = 1;
7+
for (int i = 0; i < m; ++i) {
8+
for (int j = 0; j < n; ++j) {
9+
for (int p = 0; p < k; ++p) {
10+
int k0 = ((p - grid[i][j] % k) + k) % k;
11+
if (i > 0) {
12+
f[i, j, p] = (f[i, j, p] + f[i - 1, j, k0]) % mod;
13+
}
14+
if (j > 0) {
15+
f[i, j, p] = (f[i, j, p] + f[i, j - 1, k0]) % mod;
16+
}
17+
}
18+
}
19+
}
20+
return f[m - 1, n - 1, 0];
21+
}
22+
}

0 commit comments

Comments
 (0)