From 46ad1ab582258519cb59e2e5da1fe078037a561f Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Wed, 26 Mar 2025 09:25:08 +0800 Subject: [PATCH] Add solution and test-cases for problem 2033 --- .../1.png | Bin 0 -> 5050 bytes .../2.png | Bin 0 -> 4775 bytes .../3.png | Bin 0 -> 4538 bytes .../README.md | 43 ++++++++++++------ .../Solution.go | 26 ++++++++++- .../Solution_test.go | 21 +++++---- 6 files changed, 65 insertions(+), 25 deletions(-) create mode 100644 leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/1.png create mode 100644 leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/2.png create mode 100644 leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/3.png diff --git a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/1.png b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/1.png new file mode 100644 index 0000000000000000000000000000000000000000..9d39df42ad1c5bcf4f0d7b6163129e04a996b6c9 GIT binary patch literal 5050 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 KH>yOsU;YpJt`4~X literal 0 HcmV?d00001 diff --git a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/2.png b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/2.png new file mode 100644 index 0000000000000000000000000000000000000000..4a23797c8025659c54b96d37dbadbea1c9b74774 GIT binary patch literal 4775 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 Cc-}$) literal 0 HcmV?d00001 diff --git a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/README.md b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/README.md index 92d48a887..0dc9bdea8 100755 --- a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/README.md +++ b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/README.md @@ -1,28 +1,45 @@ # [2033.Minimum Operations to Make a Uni-Value Grid][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 2D integer `grid` of size `m x n` and an integer `x`. In one operation, you can **add** `x` to or **subtract** `x` from any element in the `grid`. + +A **uni-value** grid is a grid where all the elements of it are equal. + +Return the **minimum** number of operations to make the grid **uni-value**. If it is not possible, return `-1`. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: grid = [[2,4],[6,8]], x = 2 +Output: 4 +Explanation: We can make every element equal to 4 by doing the following: +- Add x to 2 once. +- Subtract x from 6 once. +- Subtract x from 8 twice. +A total of 4 operations were used. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Minimum Operations to Make a Uni-Value Grid -```go +``` +Input: grid = [[1,5],[2,3]], x = 1 +Output: 5 +Explanation: We can make every element equal to 3. ``` +**Example 3:** + +![3](./3.png) + +``` +Input: grid = [[1,2],[3,4]], x = 2 +Output: -1 +Explanation: It is impossible to make every element equal. +``` ## 结语 diff --git a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution.go b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution.go index d115ccf5e..529984641 100644 --- a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution.go +++ b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution.go @@ -1,5 +1,27 @@ package Solution -func Solution(x bool) bool { - return x +import "sort" + +func Solution(grid [][]int, x int) int { + list := []int{} + rows, cols := len(grid), len(grid[0]) + for i := range rows { + for j := range cols { + list = append(list, grid[i][j]) + } + } + sort.Ints(list) + mid := list[len(list)/2] + ans := 0 + for _, n := range list { + if n%x != mid%x { + return -1 + } + diff := n - mid + if diff < 0 { + diff = -diff + } + ans += diff / x + } + return ans } diff --git a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution_test.go b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution_test.go index 14ff50eb4..11ec392b2 100644 --- a/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution_test.go +++ b/leetcode/2001-2100/2033.Minimum-Operations-to-Make-a-Uni-Value-Grid/Solution_test.go @@ -10,30 +10,31 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + grid [][]int + x int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{2, 4}, {6, 8}}, 2, 4}, + {"TestCase2", [][]int{{1, 5}, {2, 3}}, 1, 5}, + {"TestCase3", [][]int{{1, 2}, {3, 4}}, 2, -1}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.grid, c.x) 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.grid, c.x) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }