From 08e778389c80b5c4aea11bcaf9db174c973e3c93 Mon Sep 17 00:00:00 2001 From: 0xff-dev Date: Sun, 3 Aug 2025 14:41:45 +0800 Subject: [PATCH] Add solution and test-cases for problem 2106 --- .../1.png | Bin 0 -> 10603 bytes .../2.png | Bin 0 -> 11738 bytes .../3.png | Bin 0 -> 9545 bytes .../README.md | 51 ++++++++++++---- .../Solution.go | 56 +++++++++++++++++- .../Solution_test.go | 23 +++---- 6 files changed, 104 insertions(+), 26 deletions(-) create mode 100644 leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/1.png create mode 100644 leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/2.png create mode 100644 leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/3.png diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/1.png b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/1.png new file mode 100644 index 0000000000000000000000000000000000000000..591a58de68d221c4e706aa575ec623d17bb26212 GIT binary patch literal 10603 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 X{r^u$UMhA1CqR_s)MYEB&BFc{H&Oxn literal 0 HcmV?d00001 diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/2.png b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/2.png new file mode 100644 index 0000000000000000000000000000000000000000..c9adbb06debebfe6c7b5d72edc14ce2e2e251115 GIT binary patch literal 11738 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 F{{i?U3CREe literal 0 HcmV?d00001 diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/3.png b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/3.png new file mode 100644 index 0000000000000000000000000000000000000000..bed918ea7d44880f3809dd4260d6d8c69e9f1741 GIT binary patch literal 9545 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 literal 0 HcmV?d00001 diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/README.md b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/README.md index 97b6c47b1..454bbfacc 100755 --- a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/README.md +++ b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/README.md @@ -1,28 +1,53 @@ # [2106.Maximum Fruits Harvested After at Most K Steps][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 +Fruits are available at some positions on an infinite x-axis. You are given a 2D integer array `fruits` where `fruits[i] = [positioni, amounti]` depicts `amounti` fruits at the position `positioni`. `fruits` is already **sorted** by `positioni` in **ascending order**, and each `positioni` is **unique**. + +You are also given an integer `startPos` and an integer `k`. Initially, you are at the position `startPos`. From any position, you can either walk to the **left or right**. It takes **one step** to move **one unit** on the x-axis, and you can walk **at most** `k` steps in total. For every position you reach, you harvest all the fruits at that position, and the fruits will disappear from that position. + +Return the **maximum total number** of fruits you can harvest. -**Example 1:** +**Example 1:** + +![1](./1.png) ``` -Input: a = "11", b = "1" -Output: "100" +Input: fruits = [[2,8],[6,3],[8,6]], startPos = 5, k = 4 +Output: 9 +Explanation: +The optimal way is to: +- Move right to position 6 and harvest 3 fruits +- Move right to position 8 and harvest 6 fruits +You moved 3 steps and harvested 3 + 6 = 9 fruits in total. ``` -## 题意 -> ... +**Example 2:** -## 题解 +![2](./2.png) -### 思路1 -> ... -Maximum Fruits Harvested After at Most K Steps -```go +``` +Input: fruits = [[0,9],[4,1],[5,7],[6,2],[7,4],[10,9]], startPos = 5, k = 4 +Output: 14 +Explanation: +You can move at most k = 4 steps, so you cannot reach position 0 nor 10. +The optimal way is to: +- Harvest the 7 fruits at the starting position 5 +- Move left to position 4 and harvest 1 fruit +- Move right to position 6 and harvest 2 fruits +- Move right to position 7 and harvest 4 fruits +You moved 1 + 3 = 4 steps and harvested 7 + 1 + 2 + 4 = 14 fruits in total. ``` +**Example 3:** + +![3](./3.png) + +``` +Input: fruits = [[0,3],[6,4],[8,5]], startPos = 3, k = 2 +Output: 0 +Explanation: +You can move at most k = 2 steps and cannot reach any position with fruits. +``` ## 结语 diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution.go b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution.go index d115ccf5e..aeadc8088 100644 --- a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution.go +++ b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution.go @@ -1,5 +1,57 @@ package Solution -func Solution(x bool) bool { - return x +import "sort" + +func Solution(fruits [][]int, startPos int, k int) int { + l := len(fruits) + index := sort.Search(l, func(i int) bool { + return fruits[i][0] >= startPos + }) + ans, dis := 0, 0 + sum := make([]int, l) + + a := 0 + for i := index; i < l; i++ { + a += fruits[i][1] + sum[i] = a + } + a = 0 + for i := index - 1; i >= 0; i-- { + a += fruits[i][1] + sum[i] = a + } + right := 0 + for i := index; i < l; i++ { + dis = fruits[i][0] - startPos + if dis > k { + break + } + right += fruits[i][1] + ans = max(ans, right) + + if x := sort.Search(index, func(j int) bool { + return fruits[i][0]-fruits[j][0] <= k-dis + }); x != index { + ans = max(ans, right+sum[x]) + } + } + left := 0 + ll := l - index + + for i := index - 1; i >= 0; i-- { + dis = startPos - fruits[i][0] + if dis > k { + break + } + left += fruits[i][1] + + ans = max(ans, left) + if x := sort.Search(ll, func(j int) bool { + return fruits[index+j][0]-fruits[i][0] > k-dis + }); x != 0 { + ans = max(ans, left+sum[index+x-1]) + + } + } + return ans } diff --git a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution_test.go b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution_test.go index 14ff50eb4..99fbf18ba 100644 --- a/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution_test.go +++ b/leetcode/2101-2200/2106.Maximum-Fruits-Harvested-After-at-Most-K-Steps/Solution_test.go @@ -9,31 +9,32 @@ import ( func TestSolution(t *testing.T) { // 测试用例 cases := []struct { - name string - inputs bool - expect bool + name string + inputs [][]int + startPos, k int + expect int }{ - {"TestCase", true, true}, - {"TestCase", true, true}, - {"TestCase", false, false}, + {"TestCase1", [][]int{{2, 8}, {6, 3}, {8, 6}}, 5, 4, 9}, + {"TestCase2", [][]int{{0, 9}, {4, 1}, {5, 7}, {6, 2}, {7, 4}, {10, 9}}, 5, 4, 14}, + {"TestCase3", [][]int{{0, 3}, {6, 4}, {8, 5}}, 3, 2, 0}, } // 开始测试 for i, c := range cases { t.Run(c.name+" "+strconv.Itoa(i), func(t *testing.T) { - got := Solution(c.inputs) + got := Solution(c.inputs, c.startPos, c.k) 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.inputs, c.startPos, c.k) } }) } } -// 压力测试 +// 压力测试 func BenchmarkSolution(b *testing.B) { } -// 使用案列 +// 使用案列 func ExampleSolution() { }