From 0dbc19121cf4c8da189064871f2b5f9a51ac181b Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Mon, 20 Jan 2025 09:20:37 +0800 Subject: [PATCH] Add solution and test-cases for problem 2661 --- .../1.jpg | Bin 0 -> 5292 bytes .../2.jpg | Bin 0 -> 12112 bytes .../README.md | 35 ++++++++++++++++++ .../Solution.go | 20 +++++++++- .../Solution_test.go | 20 +++++----- 5 files changed, 63 insertions(+), 12 deletions(-) create mode 100644 leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/1.jpg create mode 100644 leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/2.jpg create mode 100644 leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/README.md diff --git a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/1.jpg b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1606a3a4594e12a70edca32fcea840b50aeaa854 GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/README.md b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/README.md new file mode 100644 index 000000000..169163cb8 --- /dev/null +++ b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/README.md @@ -0,0 +1,35 @@ +# [2661.First Completely Painted Row or Column][title] + +## Description +You are given a **0-indexed** integer array `arr`, and an `m x n` integer **matrix** `mat`. `arr` and `mat` both contain **all** the integers in the range `[1, m * n]`. + +Go through each index `i` in `arr` starting from index `0` and paint the cell in `mat` containing the integer `arr[i]`. + +Return the smallest index `i` at which either a row or a column will be completely painted in `mat`. + +**Example 1:** + +![1](./1.jpg) + +``` +Input: arr = [1,3,4,2], mat = [[1,4],[2,3]] +Output: 2 +Explanation: The moves are shown in order, and both the first row and second column of the matrix become fully painted at arr[2]. +``` + +**EXample 2:** + +![2](./2.jpg) + +``` +Input: arr = [2,8,7,4,1,3,5,6,9], mat = [[3,2,5],[1,4,6],[8,7,9]] +Output: 3 +Explanation: The second column becomes fully painted at arr[3]. +``` + +## 结语 + +如果你同我一样热爱数据结构、算法、LeetCode,可以关注我 GitHub 上的 LeetCode 题解:[awesome-golang-algorithm][me] + +[title]: https://leetcode.com/problems/first-completely-painted-row-or-column +[me]: https://github.com/kylesliu/awesome-golang-algorithm diff --git a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution.go b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution.go index d115ccf5e..572b4598c 100755 --- a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution.go +++ b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution.go @@ -1,5 +1,21 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(arr []int, mat [][]int) int { + m, n := len(mat), len(mat[0]) + rows, cols := make([]int, m), make([]int, n) + key := make(map[int][2]int) + for i := range m { + for j := range n { + key[mat[i][j]] = [2]int{i, j} + } + } + for i := range arr { + pos := key[arr[i]] + rows[pos[0]]++ + cols[pos[1]]++ + if rows[pos[0]] == n || cols[pos[1]] == m { + return i + } + } + return len(arr) - 1 } diff --git a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution_test.go b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution_test.go index 14ff50eb4..0f23ccc98 100755 --- a/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution_test.go +++ b/leetcode/2601-2700/2661.First-Completely-Painted-Row-or-Column/Solution_test.go @@ -10,30 +10,30 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + arr []int + mat [][]int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", []int{1, 3, 4, 2}, [][]int{{1, 4}, {2, 3}}, 2}, + {"TestCase2", []int{2, 8, 7, 4, 1, 3, 5, 6, 9}, [][]int{{3, 2, 5}, {1, 4, 6}, {8, 7, 9}}, 3}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.arr, c.mat) 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.arr, c.mat) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }