Skip to content

Commit d62c263

Browse files
authored
rearranging_fruits.py
example of a greedy algorithm
1 parent 55f03bb commit d62c263

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
class Solution:
2+
def minCost(self, basket1: List[int], basket2: List[int]) -> int:
3+
n = len(basket1)
4+
freq = defaultdict(int)
5+
mn = float('inf')
6+
for i in range(n):
7+
freq[basket1[i]] += 1
8+
freq[basket2[i]] -= 1
9+
mn = min(mn, basket1[i], basket2[i])
10+
11+
to_swap = []
12+
for j,k in freq.items():
13+
if k % 2 != 0:
14+
return -1
15+
to_swap += [j] * (abs(k) // 2)
16+
17+
to_swap.sort()
18+
res = 0
19+
for i in range(len(to_swap) // 2):
20+
res += min(to_swap[i], 2 * mn)
21+
22+
return res

0 commit comments

Comments
 (0)