From e5621ec9edd72c3f99388f84dd8c7b5bcc4db8da Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Mon, 13 May 2024 22:15:38 +0800 Subject: [PATCH] Add solution and test-cases for problem 861 --- .../README.md | 32 +++++++++-------- .../Solution.go | 34 ++++++++++++++++-- .../Solution_test.go | 15 ++++---- .../lc-toogle1.jpeg | Bin 0 -> 37687 bytes 4 files changed, 57 insertions(+), 24 deletions(-) create mode 100644 leetcode/801-900/0861.Score-After-Flipping-Matrix/lc-toogle1.jpeg diff --git a/leetcode/801-900/0861.Score-After-Flipping-Matrix/README.md b/leetcode/801-900/0861.Score-After-Flipping-Matrix/README.md index 3d52a7918..64fdcb051 100644 --- a/leetcode/801-900/0861.Score-After-Flipping-Matrix/README.md +++ b/leetcode/801-900/0861.Score-After-Flipping-Matrix/README.md @@ -1,28 +1,30 @@ # [861.Score After Flipping Matrix][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 `m x n` binary matrix `grid`. -**Example 1:** +A **move** consists of choosing any row or column and toggling each value in that row or column (i.e., changing all `0`'s to `1`'s, and all `1`'s to `0`'s). -``` -Input: a = "11", b = "1" -Output: "100" -``` +Every row of the matrix is interpreted as a binary number, and the **score** of the matrix is the sum of these numbers. + +Return the highest possible **score** after making any number of **moves** (including zero moves). -## 题意 -> ... +**Example 1:** -## 题解 +![1](./lc-toogle1.jpeg) -### 思路1 -> ... -Score After Flipping Matrix -```go ``` +Input: grid = [[0,0,1,1],[1,0,1,0],[1,1,0,0]] +Output: 39 +Explanation: 0b1111 + 0b1001 + 0b1111 = 15 + 9 + 15 = 39 +``` + +**Example 2:** +``` +Input: grid = [[0]] +Output: 1 +``` ## 结语 diff --git a/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution.go b/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution.go index d115ccf5e..ecaecef88 100644 --- a/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution.go +++ b/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution.go @@ -1,5 +1,35 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(grid [][]int) int { + rows, cols := len(grid), len(grid[0]) + for i := 0; i < rows; i++ { + if grid[i][0] == 0 { + for j := 0; j < cols; j++ { + grid[i][j] = 1 - grid[i][j] + } + } + } + for c := 1; c < cols; c++ { + ones := 0 + for r := 0; r < rows; r++ { + if grid[r][c] == 1 { + ones++ + } + } + if ones < rows-ones { + for r := 0; r < rows; r++ { + grid[r][c] = 1 - grid[r][c] + } + } + } + + ans := 0 + for i := 0; i < rows; i++ { + cur := 0 + for j := 0; j < cols; j++ { + cur = cur*2 + grid[i][j] + } + ans += cur + } + return ans } diff --git a/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution_test.go b/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution_test.go index 14ff50eb4..1339c5a48 100644 --- a/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution_test.go +++ b/leetcode/801-900/0861.Score-After-Flipping-Matrix/Solution_test.go @@ -10,12 +10,13 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + inputs [][]int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{ + {0, 0, 1, 1}, {1, 0, 1, 0}, {1, 1, 0, 0}, + }, 39}, + {"TestCase2", [][]int{{0}}, 1}, } // 开始测试 @@ -30,10 +31,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { } diff --git a/leetcode/801-900/0861.Score-After-Flipping-Matrix/lc-toogle1.jpeg b/leetcode/801-900/0861.Score-After-Flipping-Matrix/lc-toogle1.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ac1099bfa9716e5f6d8906af07f0e3f43094a777 GIT binary patch literal 37687 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 MF5S!dQ~%!t0NTyd>i_@% literal 0 HcmV?d00001