From 529ede8c15f885b2fe9ecc18c2e80da35bbbe81d Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Mon, 9 Sep 2024 09:12:06 +0800 Subject: [PATCH] Add solution and test-cases for problem 2326 --- .../2301-2400/2326.Spiral-Matrix-IV/1.jpg | Bin 0 -> 27103 bytes .../2301-2400/2326.Spiral-Matrix-IV/2.jpg | Bin 0 -> 7460 bytes .../2301-2400/2326.Spiral-Matrix-IV/README.md | 35 +++++++++------ .../2326.Spiral-Matrix-IV/Solution.go | 40 +++++++++++++++++- .../2326.Spiral-Matrix-IV/Solution_test.go | 26 +++++++----- 5 files changed, 75 insertions(+), 26 deletions(-) create mode 100644 leetcode/2301-2400/2326.Spiral-Matrix-IV/1.jpg create mode 100644 leetcode/2301-2400/2326.Spiral-Matrix-IV/2.jpg diff --git a/leetcode/2301-2400/2326.Spiral-Matrix-IV/1.jpg b/leetcode/2301-2400/2326.Spiral-Matrix-IV/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..34bcd8c03f73034e2d080f734edd2ef096362da3 GIT binary patch literal 27103 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 literal 0 HcmV?d00001 diff --git a/leetcode/2301-2400/2326.Spiral-Matrix-IV/2.jpg b/leetcode/2301-2400/2326.Spiral-Matrix-IV/2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8d5161324ab1b6905605e837cd81349f6a49c56d GIT binary patch literal 7460 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 nsoze&JO1X&x; [!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 two integers `m` and `n`, which represent the dimensions of a matrix. + +You are also given the `head` of a linked list of integers. + +Generate an `m x n` matrix that contains the integers in the linked list presented in **spiral order **(clockwise)**, starting from the **top-left** of the matrix. If there are remaining empty spaces, fill them with ``-1`. + +Return the generated matrix. -**Example 1:** +**Example 1:** + +![1](./1.jpg) ``` -Input: a = "11", b = "1" -Output: "100" +Input: m = 3, n = 5, head = [3,0,2,6,8,1,7,9,4,2,5,5,0] +Output: [[3,0,2,6,8],[5,0,-1,-1,1],[5,2,4,9,7]] +Explanation: The diagram above shows how the values are printed in the matrix. +Note that the remaining spaces in the matrix are filled with -1. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.jpg) -### 思路1 -> ... -Spiral Matrix IV -```go ``` - +Input: m = 1, n = 4, head = [0,1,2] +Output: [[0,1,2,-1]] +Explanation: The diagram above shows how the values are printed from left to right in the matrix. +The last space in the matrix is set to -1. +``` ## 结语 diff --git a/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution.go b/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution.go index d115ccf5e..8be4f3350 100644 --- a/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution.go +++ b/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution.go @@ -1,5 +1,41 @@ package Solution -func Solution(x bool) bool { - return x +type ListNode struct { + Val int + Next *ListNode +} + +func Solution(m int, n int, head *ListNode) [][]int { + ans := make([][]int, m) + for i := range m { + ans[i] = make([]int, n) + for j := range n { + ans[i][j] = -1 + } + } + + x, y := 0, 0 + width := 0 + for head != nil { + for ; y < n-width && head != nil; y, head = y+1, head.Next { + ans[x][y] = head.Val + } + x, y = x+1, y-1 + + for ; x < m-width && head != nil; x, head = x+1, head.Next { + ans[x][y] = head.Val + } + x, y = x-1, y-1 + + for ; y >= width && head != nil; y, head = y-1, head.Next { + ans[x][y] = head.Val + } + x, y = x-1, y+1 + for ; x > width && head != nil; x, head = x-1, head.Next { + ans[x][y] = head.Val + } + width++ + x, y = width, width + } + return ans } diff --git a/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution_test.go b/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution_test.go index 14ff50eb4..af9b89bf7 100644 --- a/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution_test.go +++ b/leetcode/2301-2400/2326.Spiral-Matrix-IV/Solution_test.go @@ -10,30 +10,36 @@ func TestSolution(t *testing.T) { // 测试用例 cases := []struct { name string - inputs bool - expect bool + m, n int + head *ListNode + expect [][]int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", 3, 5, &ListNode{3, &ListNode{0, &ListNode{2, &ListNode{6, &ListNode{8, &ListNode{1, &ListNode{7, &ListNode{9, &ListNode{4, &ListNode{2, &ListNode{5, &ListNode{5, &ListNode{0, nil}}}}}}}}}}}}}, [][]int{ + {3, 0, 2, 6, 8}, + {5, 0, -1, -1, 1}, + {5, 2, 4, 9, 7}, + }}, + {"TestCase2", 1, 4, &ListNode{0, &ListNode{1, &ListNode{2, nil}}}, [][]int{ + {0, 1, 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.m, c.n, c.head) 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 %v", + c.expect, got, c.m, c.n, c.head) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }