From d22d762c930308538c2ad69f090cba0846abccda Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Fri, 29 Nov 2024 10:42:42 +0800 Subject: [PATCH] Add solution and test-cases for problem 2577 --- .../1.png | Bin 0 -> 6991 bytes .../2.png | Bin 0 -> 4828 bytes .../README.md | 44 ++++++++++++ .../Solution.go | 66 +++++++++++++++++- .../Solution_test.go | 13 ++-- 5 files changed, 115 insertions(+), 8 deletions(-) create mode 100644 leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/1.png create mode 100644 leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/2.png create mode 100644 leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/README.md diff --git a/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/1.png b/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/1.png new file mode 100644 index 0000000000000000000000000000000000000000..df85556dc8f05f40922f548f25c942d0082423ef GIT binary patch literal 6991 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 hRvg&8?rd>wh 1 && grid[1][0] > 1 { + // 根本走不了 + return -1 + } + m, n := len(grid), len(grid[0]) + visited := make(map[[2]int]int) + visited[[2]int{0, 0}] = 0 + q := heap2577{{0, 0, 0}} + + for q.Len() > 0 { + cur := heap.Pop(&q).([3]int) + if cur[0] == m-1 && cur[1] == n-1 { + return cur[2] + } + for _, dir := range dirs2577 { + nx, ny := cur[0]+dir[0], cur[1]+dir[1] + if nx >= 0 && nx < m && ny >= 0 && ny < n { + cost := cur[2] + 1 // 耗时比目前小,直接+1过去 + if diff := grid[nx][ny] - cur[2]; diff >= 1 { + cost = grid[nx][ny] + if diff&1 == 0 { + cost++ + } + } + if v, ok := visited[[2]int{nx, ny}]; !ok || v > cost { + heap.Push(&q, [3]int{nx, ny, cost}) + visited[[2]int{nx, ny}] = cost + } + } + } + } + + return -1 +} diff --git a/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/Solution_test.go b/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/Solution_test.go index 14ff50eb4..2917d5fbc 100755 --- a/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/Solution_test.go +++ b/leetcode/2501-2600/2577.Minimum-Time-to-Visit-a-Cell-In-a-Grid/Solution_test.go @@ -10,12 +10,11 @@ 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, 1, 3, 2}, {5, 1, 2, 5}, {4, 3, 8, 6}}, 7}, + {"TestCase2", [][]int{{0, 2, 4}, {3, 2, 1}, {1, 0, 4}}, -1}, } // 开始测试 @@ -30,10 +29,10 @@ func TestSolution(t *testing.T) { } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }