From 829a254420355f8fc68f7c684ca7449d139896dd Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Sun, 24 Nov 2024 13:02:41 +0800 Subject: [PATCH] Add solution and test-cases for problem 1975 --- .../1901-2000/1975.Maximum-Matrix-Sum/1.png | Bin 0 -> 4065 bytes .../1901-2000/1975.Maximum-Matrix-Sum/2.png | Bin 0 -> 6889 bytes .../1975.Maximum-Matrix-Sum/README.md | 36 +++++++++++------- .../1975.Maximum-Matrix-Sum/Solution.go | 25 +++++++++++- .../1975.Maximum-Matrix-Sum/Solution_test.go | 13 +++---- 5 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 leetcode/1901-2000/1975.Maximum-Matrix-Sum/1.png create mode 100644 leetcode/1901-2000/1975.Maximum-Matrix-Sum/2.png diff --git a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/1.png b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7da49b04b3ccb3a88a1844d22e4332cbfb5dd5ed GIT binary patch literal 4065 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 literal 0 HcmV?d00001 diff --git a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/2.png b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/2.png new file mode 100644 index 0000000000000000000000000000000000000000..76575375f64cfd71e1efdcca06e3826b67c30657 GIT binary patch literal 6889 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 Pzp&&8I5M`-+FSZxCJJK* literal 0 HcmV?d00001 diff --git a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/README.md b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/README.md index 81bdefe9c..fa22eb4a4 100755 --- a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/README.md +++ b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/README.md @@ -1,28 +1,36 @@ # [1975.Maximum Matrix Sum][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 an `n x n` integer `matrix`. You can do the following operation **any** number of times: + +- Choose any two **adjacent** elements of `matrix` and **multiply** each of them by ``-1`. + +Two elements are considered **adjacent** if and only if they share a **border**. + +Your goal is to **maximum** the summation of the matrix's elements. Return the **maximum** sum of the matrix's elements using the operation mentioned above. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: matrix = [[1,-1],[-1,1]] +Output: 4 +Explanation: We can follow the following steps to reach sum equals 4: +- Multiply the 2 elements in the first row by -1. +- Multiply the 2 elements in the first column by -1. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Maximum Matrix Sum -```go ``` - +Input: matrix = [[1,2,3],[-1,-2,-3],[1,2,3]] +Output: 16 +Explanation: We can follow the following step to reach sum equals 16: +- Multiply the 2 last elements in the second row by -1. +``` ## 结语 diff --git a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution.go b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution.go index d115ccf5e..4159fb577 100644 --- a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution.go +++ b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution.go @@ -1,5 +1,26 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(matrix [][]int) int64 { + ans, neg := int64(0), 0 + _min := int64(100001) + zero := 0 + rows, cols := len(matrix), len(matrix[0]) + for i := range rows { + for j := range cols { + cur := int64(matrix[i][j]) + if cur == 0 { + zero++ + } + if cur < 0 { + neg++ + cur = -cur + } + ans += cur + _min = min(_min, cur) + } + } + if neg&1 == 1 && zero == 0 { + ans -= 2 * _min + } + return ans } diff --git a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution_test.go b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution_test.go index 14ff50eb4..463da125f 100644 --- a/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution_test.go +++ b/leetcode/1901-2000/1975.Maximum-Matrix-Sum/Solution_test.go @@ -10,12 +10,11 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + expect int64 }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{1, -1}, {-1, 1}}, 4}, + {"TestCase2", [][]int{{1, 2, 3}, {-1, 2, 3}, {1, 2, 3}}, 16}, } // 开始测试 @@ -30,10 +29,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }