Skip to content

Commit 93d2dc2

Browse files
committed
Aug 02
1 parent ff81dc3 commit 93d2dc2

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

2025-08-August-LeetCoding-Challenge/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
| Day | Problem | Level | Status |
66
| --- | --- | --- | --- |
77
| August 01 | [118. Pascal's Triangle](https://leetcode.com/problems/pascals-triangle/) | Easy | Solved |
8-
| August 02 | []() | | |
8+
| August 02 | [2561. Rearranging Fruits](https://leetcode.com/problems/rearranging-fruits/) | Hard | Solved |
99
| August 03 | []() | | |
1010
| August 04 | []() | | |
1111
| August 05 | []() | | |
@@ -42,4 +42,4 @@
4242
| --- | --- | --- | --- |
4343
| Easy | 1 | 1 | 0 |
4444
| Medium | 0 | 0 | 0 |
45-
| Hard | 0 | 0 | 0 |
45+
| Hard | 1 | 1 | 0 |
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
class Solution:
2+
def minCost(self, basket1: list[int], basket2: list[int]) -> int:
3+
freq = dict()
4+
min_fruit = float('inf')
5+
6+
for fruit in basket1:
7+
freq[fruit] = freq.get(fruit, 0) + 1
8+
min_fruit = min(min_fruit, fruit)
9+
for fruit in basket2:
10+
freq[fruit] = freq.get(fruit, 0) - 1
11+
min_fruit = min(min_fruit, fruit)
12+
13+
swap = []
14+
for fruit, count in freq.items():
15+
if count & 1 != 0:
16+
return -1
17+
swap.extend([fruit] * (abs(count) // 2))
18+
19+
swap.sort()
20+
min_cost = 0
21+
for fruit in swap[:len(swap) // 2]:
22+
min_cost += min(2 * min_fruit, fruit)
23+
return min_cost
24+
25+
26+
def main():
27+
basket1 = [4, 2, 2, 2]
28+
basket2 = [1, 4, 1, 2]
29+
assert Solution().minCost(basket1, basket2) == 1
30+
31+
basket1 = [2, 3, 4, 1]
32+
basket2 = [3, 2, 5, 1]
33+
assert Solution().minCost(basket1, basket2) == -1
34+
35+
36+
if __name__ == '__main__':
37+
main()

0 commit comments

Comments
 (0)