From add853b46f73a31b938802bec87b3e6e999c3e88 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Fri, 14 Nov 2025 21:51:20 +0800 Subject: [PATCH] Add solution and test-cases for proble 2536 --- .../2536.Increment-Submatrices-by-One/1.png | Bin 0 -> 9593 bytes .../2536.Increment-Submatrices-by-One/2.png | Bin 0 -> 4258 bytes .../README.md | 40 ++++++++++++++++++ .../Solution.go | 15 ++++++- .../Solution_test.go | 26 +++++++----- 5 files changed, 68 insertions(+), 13 deletions(-) create mode 100644 leetcode/2501-2600/2536.Increment-Submatrices-by-One/1.png create mode 100644 leetcode/2501-2600/2536.Increment-Submatrices-by-One/2.png create mode 100644 leetcode/2501-2600/2536.Increment-Submatrices-by-One/README.md diff --git a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/1.png b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/1.png new file mode 100644 index 0000000000000000000000000000000000000000..e16e639bf21c738d56db954870f433e34eb5b282 GIT binary patch literal 9593 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 H+4=tf;>oe- literal 0 HcmV?d00001 diff --git a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/README.md b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/README.md new file mode 100644 index 000000000..6db7e23e9 --- /dev/null +++ b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/README.md @@ -0,0 +1,40 @@ +# [2536.Increment Submatrices by One][title] + +## Description +You are given a positive integer `n`, indicating that we initially have an `n x n` **0-indexed** integer matrix `mat` filled with zeroes. + +You are also given a 2D integer array `query`. For each `query[i] = [row1i, col1i, row2i, col2i]`, you should do the following operation: + +- Add `1` to **every element** in the submatrix with the **top left** corner `(row1i, col1i)` and the **bottom right** corner `(row2i, col2i)`. That is, add `1` to `mat[x][y]` for all `row1i <= x <= row2i` and `col1i <= y <= col2i`. + +Return the matrix `mat` after performing every query. + +**Example 1:** + +![1](./1.png) + +``` +Input: n = 3, queries = [[1,1,2,2],[0,0,1,1]] +Output: [[1,1,0],[1,2,1],[0,1,1]] +Explanation: The diagram above shows the initial matrix, the matrix after the first query, and the matrix after the second query. +- In the first query, we add 1 to every element in the submatrix with the top left corner (1, 1) and bottom right corner (2, 2). +- In the second query, we add 1 to every element in the submatrix with the top left corner (0, 0) and bottom right corner (1, 1). +``` + +**Example 2:** + +![2](./2.png) + +``` +Input: n = 2, queries = [[0,0,1,1]] +Output: [[1,1],[1,1]] +Explanation: The diagram above shows the initial matrix and the matrix after the first query. +- In the first query we add 1 to every element in the matrix. +``` + +## 结语 + +如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-golang-algorithm][me] + +[title]: https://leetcode.com/problems/increment-submatrices-by-one +[me]: https://github.com/kylesliu/awesome-golang-algorithm diff --git a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution.go b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution.go index d115ccf5e..4e3fdda11 100755 --- a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution.go +++ b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution.go @@ -1,5 +1,16 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(n int, queries [][]int) [][]int { + mat := make([][]int, n) + for i := 0; i < n; i++ { + mat[i] = make([]int, n) + } + for _, q := range queries { + for i := q[0]; i <= q[2]; i++ { + for j := q[1]; j <= q[3]; j++ { + mat[i][j]++ + } + } + } + return mat } diff --git a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution_test.go b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution_test.go index 14ff50eb4..63cf3703e 100755 --- a/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution_test.go +++ b/leetcode/2501-2600/2536.Increment-Submatrices-by-One/Solution_test.go @@ -9,31 +9,35 @@ import ( func TestSolution(t *testing.T) { // 测试用例 cases := []struct { - name string - inputs bool - expect bool + name string + inputs int + queries [][]int + expect [][]int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", 3, [][]int{ + {1, 1, 2, 2}, {0, 0, 1, 1}, + }, [][]int{ + {1, 1, 0}, {1, 2, 1}, {0, 1, 1}, + }}, + {"TestCase2", 2, [][]int{{0, 0, 1, 1}}, [][]int{{1, 1}, {1, 1}}}, } // 开始测试 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.queries) 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.queries) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }