Skip to content

Commit 0bbd49d

Browse files
authored
Update rearranging_fruits.py
1 parent 19c0dfd commit 0bbd49d

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

greedy_methods/rearranging_fruits.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,28 @@
11
from collections import defaultdict
2+
from typing import DefaultDict, List
23

34

4-
def min_cost(basket1: list[int], basket2: list[int]) -> int:
5+
def min_cost(basket1: List[int], basket2: List[int]) -> int:
56
n = len(basket1)
6-
freq = defaultdict(int)
7-
mn = float("inf")
7+
freq: DefaultDict[int, int] = defaultdict(int)
8+
mn: float = float("inf")
89

910
for i in range(n):
1011
freq[basket1[i]] += 1
1112
freq[basket2[i]] -= 1
1213
mn = min(mn, basket1[i], basket2[i])
1314

14-
to_swap = []
15+
to_swap: List[int] = []
1516
for j, k in freq.items():
1617
if k % 2 != 0:
1718
return -1
1819
to_swap += [j] * (abs(k) // 2)
1920

2021
to_swap.sort()
21-
res = 0
22+
res: int = 0
2223
for i in range(len(to_swap) // 2):
23-
res += min(to_swap[i], 2 * mn)
24+
# Ensure mn is treated as int during arithmetic
25+
res += min(to_swap[i], 2 * int(mn))
2426

2527
return res
2628

@@ -31,7 +33,7 @@ def min_cost(basket1: list[int], basket2: list[int]) -> int:
3133
([4, 2, 2, 2], [1, 4, 1, 2]), # Expected: 1
3234
([1, 2, 3, 4], [2, 3, 4, 1]), # Expected: 0
3335
([1, 1, 1, 1], [1, 1, 1, 1]), # Expected: 0
34-
([1, 2, 2], [2, 1, 1]), # Expected: -1
36+
([1, 2, 2], [2, 1, 1]), # Expected: -1
3537
([5, 3, 3, 2], [2, 5, 5, 3]), # Expected: -1
3638
]
3739

0 commit comments

Comments
 (0)