From 3e071b6b223599eac7a021e3bb867f7fc861dd9d Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Thu, 9 Oct 2025 09:14:54 +0800 Subject: [PATCH] Add solution and test-cases for problem 3494 --- .../1.png | Bin 0 -> 58018 bytes .../README.md | 47 +++++++++++++----- .../Solution.go | 41 ++++++++++++++- .../Solution_test.go | 22 ++++---- 4 files changed, 84 insertions(+), 26 deletions(-) create mode 100644 leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/1.png diff --git a/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/1.png b/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/1.png new file mode 100644 index 0000000000000000000000000000000000000000..c30d4909f0df18f41bd2fe57ac65cd0357ee0028 GIT binary patch literal 58018 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 [!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 integer arrays, `skill` and `mana`, of length `n` and `m`, respectively. + +In a laboratory, `n` wizards must brew `m` potions in order. Each potion has a mana capacity `mana[j]` and **must** pass through **all** the wizards sequentially to be brewed properly. The time taken by the `ith` wizard on the `jth` potion is `timeij = skill[i] * mana[j]`. + +Since the brewing process is delicate, a potion **must** be passed to the next wizard immediately after the current wizard completes their work. This means the timing must be synchronized so that each wizard begins working on a potion **exactly** when it arrives. + +Return the **minimum** amount of time required for the potions to be brewed properly. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: skill = [1,5,2,4], mana = [5,1,4,2] + +Output: 110 + +Explanation: + +As an example for why wizard 0 cannot start working on the 1st potion before time t = 52, consider the case where the wizards started preparing the 1st potion at time t = 50. At time t = 58, wizard 2 is done with the 1st potion, but wizard 3 will still be working on the 0th potion till time t = 60. ``` -## 题意 -> ... +**Exmaple 2:** -## 题解 +``` +Input: skill = [1,1,1], mana = [1,1,1] + +Output: 5 -### 思路1 -> ... -Find the Minimum Amount of Time to Brew Potions -```go +Explanation: + +Preparation of the 0th potion begins at time t = 0, and is completed by time t = 3. +Preparation of the 1st potion begins at time t = 1, and is completed by time t = 4. +Preparation of the 2nd potion begins at time t = 2, and is completed by time t = 5. ``` +**Example 3:** + +``` +Input: skill = [1,2,3,4], mana = [1,2] + +Output: 21 +``` ## 结语 diff --git a/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution.go b/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution.go index d115ccf5e..809ea5ab9 100644 --- a/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution.go +++ b/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution.go @@ -1,5 +1,42 @@ package Solution -func Solution(x bool) bool { - return x +func Solution(skill []int, mana []int) int64 { + N, M := len(skill), len(mana) + prevPotion := make([]int64, N) + for potion := 0; potion < M; potion++ { + var startTime int64 + if potion > 0 { + // Need to find the min time in between these two to start + start, end := prevPotion[0], prevPotion[N-1] + for start <= end { + mid := start + (end-start)/2 + if canCompletePotion(mid, potion, prevPotion, skill, mana) { + startTime = mid + end = mid - 1 + } else { + start = mid + 1 + } + } + } + for wiz := 0; wiz < N; wiz++ { + prevPotion[wiz] = startTime + int64(skill[wiz])*int64(mana[potion]) + startTime = prevPotion[wiz] + } + } + return prevPotion[N-1] +} + +func canCompletePotion(startTime int64, potionCount int, prevPotion []int64, skill, mana []int) bool { + for wizard := 0; wizard < len(skill); wizard++ { + doneTime := startTime + int64(skill[wizard])*int64(mana[potionCount]) + // If the done time for the previous potion is greater than this one + // it means we cannot hand off this potion to the next wizard in a sequential + // manner. + if prevPotion[wizard] > startTime { + return false + } + startTime = doneTime + } + // As long as all potions are done after the previous, we are ok. + return true } diff --git a/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution_test.go b/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution_test.go index 14ff50eb4..b693c936c 100644 --- a/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution_test.go +++ b/leetcode/3401-3500/3494.Find-the-Minimum-Amount-of-Time-to-Brew-Potions/Solution_test.go @@ -9,31 +9,31 @@ import ( func TestSolution(t *testing.T) { // 测试用例 cases := []struct { - name string - inputs bool - expect bool + name string + skill, mana []int + expect int64 }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", []int{1, 5, 2, 4}, []int{5, 1, 4, 2}, 110}, + {"TestCase2", []int{1, 1, 1}, []int{1, 1, 1}, 5}, + {"TestCase3", []int{1, 2, 3, 4}, []int{1, 2}, 21}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.skill, c.mana) 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.skill, c.mana) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }