From 9dbabc43b6ad65ec63cc0b35f5510191c0ff46d1 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Wed, 26 Nov 2025 23:17:05 +0800 Subject: [PATCH] Add solution and test-cases for problem 2435 --- .../1.png | Bin 0 -> 18930 bytes .../2.png | Bin 0 -> 3075 bytes .../3.png | Bin 0 -> 10555 bytes .../README.md | 39 ++++++++++++------ .../Solution.go | 39 +++++++++++++++++- .../Solution_test.go | 21 +++++----- 6 files changed, 74 insertions(+), 25 deletions(-) create mode 100644 leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/1.png create mode 100644 leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/2.png create mode 100644 leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/3.png diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/1.png b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/1.png new file mode 100644 index 0000000000000000000000000000000000000000..36f7b5f12c4846197d1987091fb29c9ca605673c GIT binary patch literal 18930 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%0DU#*^;TV=LbuCScV$ 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 Xnm4tM)Y1WWIgwpa)m6z+x{dlT>io1v literal 0 HcmV?d00001 diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/2.png b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/2.png new file mode 100644 index 0000000000000000000000000000000000000000..8e2c8f0f65aaaed11b2b82284869ba985b9cad0d GIT binary patch literal 3075 zcmeHJ`BPI@6nSjzZc6TtuxMMQhC2ku?lTCL>gj|L##&%}}+Nfqq6r-qW z=sv1Av@c}eq>SBOQ=v)erK`S7tbJIOV4#axvE~Bk4BTOY;?A?Y901*m<-N5ba+{pd z5-0K*j4c;{`cYWCnGYA1dc}rg@kF`{QZa(VE9zhB=K^R+WeQAT1uti#t5}l{bJ=KE>dO)O-NSyFAc@Bf5bJ017K55JmAn zo13AK<{SUN=42Ka7#Qg94y3KYO(h5~m!-qxU7Pc)|Jcig^IyKrR^bj><}|G_B8qHV z`b`zVadhW9;gQ3LTu$ zDNo7TYb&nE$BOgtd{AH-UndKh@(86x&)jPWJ_HKIF|OcP&$KpmrCk@oV~f>GYH1+- z!V}-Q*v$w&J6H<0R2&V02BCY2>C>%Y%gyTIxK#4}#OKF5bJ(I@UmtL|rmh@bneXha zWv@&bIPI6KtJRw*1)+LdYfZ)4nc`Z32+~Z>_Q)rLS>P-Afj<9Q5!x$I zpW)D;4vx;BL{|#!AM3gn&Qs3viM~-D1Cf;Ay&yAy`MN)2z0MPP&6Vn5>B{)G1cfgp z71YWFDWc>NTS_K_QW5P4b!bkDd6Y(ZfRSRwT)|1{Z_s>W4P{>b>A{XgLj^M+54KDu zo>|sCP6w-_SV&^#STiBUgf`H_=EsF8L(kTy3+ZD_uHl%Ep}Dg@B}>`#WjtAOb=c;|O^vI_8F@%!F|ZwoMq4dYhma=IFrkq^mU-BG^}Xak?aM z+oz-mPNPd7N;8raQ7joDu|$tA@)j-{TjNG>lqR`|YjJJ)oXLGRH=2@;etUDT@( zT?6SM53lL(3^3w@FW%ESyq?{LH>w(@?AK^w)uWY8R;9-x<=v$CYw4I}7C5|%OcGtP z7^wYoe8+Z<@)`xota1Unp^5S2i6Uph_qX2UZH?Oz`Xe}-thU-^6>AY8F=2xRQqHN_ zcHhVM;Zg1HuF=SJaYF0yxhsznFkPg%s;wfKQ)!`qUku7OKGOMXIxcdS?Wzv^S~r`m z+I?hk>B-$+qU$t62f`*SKYz~X?sYCYZ=g|EcWNL-TIW*7Oe?0y%9w3ZNw$7G7-sEON=&PR?&iV)d!VvNqKF!{`bn>Ds(*7`*C#`n?7JIKSTeUMwob?;-yUq~ zY5hnpcTo!aLf)C7eF*i`8jE=r=;Jlsj3b^7L`yh<{+5>zi&dJ|)K&(+p+422QP?cR zlML&HgIIe*qA2^fl1*vDh~t9MW>#t0NN{B0gm<_zV$no^)F<2qr7XG8aFbxh;=)-J pE=0JohYQ<3h&{1N^UrHDBrZyrvtD=O`45P>2bf+gMwLf+`d`CiP5=M^ literal 0 HcmV?d00001 diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/3.png b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/3.png new file mode 100644 index 0000000000000000000000000000000000000000..62a0d72f6af6f9081865d961cea2617b2d7c862a GIT binary patch literal 10555 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 literal 0 HcmV?d00001 diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/README.md b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/README.md index df92f7779..277c246d9 100755 --- a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/README.md +++ b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/README.md @@ -1,28 +1,41 @@ # [2435.Paths in Matrix Whose Sum Is Divisible by K][title] -> [!WARNING|style:flat] -> This question is temporarily unanswered if you have good ideas. Welcome to [Create Pull Request PR](https://github.com/kylesliu/awesome-golang-algorithm) - ## Description +You are given a **0-indexed** m x n integer matrix `grid` and an integer `k`. You are currently at position `(0, 0)` and you want to reach position `(m - 1, n - 1)` moving only **down** or **right**. + +Return the number of paths where the sum of the elements on the path is divisible by `k`. Since the answer may be very large, return it **modulo** `10^9 + 7`. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: grid = [[5,2,4],[3,0,5],[0,7,2]], k = 3 +Output: 2 +Explanation: There are two paths where the sum of the elements on the path is divisible by k. +The first path highlighted in red has a sum of 5 + 2 + 4 + 5 + 2 = 18 which is divisible by 3. +The second path highlighted in blue has a sum of 5 + 3 + 0 + 5 + 2 = 15 which is divisible by 3. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Paths in Matrix Whose Sum Is Divisible by K -```go +``` +Input: grid = [[0,0]], k = 5 +Output: 1 +Explanation: The path highlighted in red has a sum of 0 + 0 = 0 which is divisible by 5. ``` +**Example 3:** + +![3](./3.png) + +``` +Input: grid = [[7,3,4,9],[2,3,6,2],[2,3,7,0]], k = 1 +Output: 10 +Explanation: Every integer is divisible by 1 so the sum of the elements on every possible path is divisible by k. +``` ## 结语 diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution.go b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution.go index d115ccf5e..bd844637d 100644 --- a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution.go +++ b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution.go @@ -1,5 +1,40 @@ package Solution -func Solution(x bool) bool { - return x +const mod2435 = 1000000007 + +func Solution(grid [][]int, k int) int { + m, n := len(grid), len(grid[0]) + dp := make([][][]int, m) + for i := 0; i < m; i++ { + dp[i] = make([][]int, n) + for j := 0; j < n; j++ { + dp[i][j] = make([]int, k) + } + } + sum := grid[0][0] % k + dp[0][0][sum] = 1 + + for idx := 1; idx < n; idx++ { + sum = (sum + grid[0][idx]) % k + dp[0][idx][sum] = 1 + } + + sum = grid[0][0] % k + + // int first column + for idx := 1; idx < m; idx++ { + sum = (sum + grid[idx][0]) % k + dp[idx][0][sum] = 1 + } + + for i := 1; i < m; i++ { + for j := 1; j < n; j++ { + for idx := 0; idx < k; idx++ { + sum = (idx + grid[i][j]) % k + dp[i][j][sum] = (dp[i][j][sum] + dp[i-1][j][idx]) % mod2435 + dp[i][j][sum] = (dp[i][j][sum] + dp[i][j-1][idx]) % mod2435 + } + } + } + return dp[m-1][n-1][0] } diff --git a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution_test.go b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution_test.go index 14ff50eb4..e4d88281b 100644 --- a/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution_test.go +++ b/leetcode/2401-2500/2435.Paths-in-Matrix-Whose-Sum-Is-Divisible-by-K/Solution_test.go @@ -10,30 +10,31 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + k int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{5, 2, 4}, {3, 0, 5}, {0, 7, 2}}, 3, 2}, + {"TestCase2", [][]int{{0, 0}}, 5, 1}, + {"TestCase3", [][]int{{7, 3, 4, 9}, {2, 3, 6, 2}, {2, 3, 7, 0}}, 1, 10}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.inputs, c.k) if !reflect.DeepEqual(got, c.expect) { - t.Fatalf("expected: %v, but got: %v, with inputs: %v", - c.expect, got, c.inputs) + t.Fatalf("expected: %v, but got: %v, with inputs: %v %v", + c.expect, got, c.inputs, c.k) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }