# 给你两个长度为 n 的整数数组,fruits 和 baskets,其中 fruits[i] 表示第 i 种水果的 数量,baskets[j] 表示第 j 个篮子的 容量。
# 你需要对 fruits 数组从左到右按照以下规则放置水果:
# 每种水果必须放入第一个 容量大于等于 该水果数量的 最左侧可用篮子 中。
# 每个篮子只能装 一种 水果。
# 如果一种水果 无法放入 任何篮子,它将保持 未放置。
# 返回所有可能分配完成后,剩余未放置的水果种类的数量。
class Solution:
def numOfUnplacedFruits(self, fruits, baskets):
sum1 = 0
max_values = 10000000000000000000
for key,values in enumerate(fruits):
if values < max_values:
for key2, values2 in enumerate(baskets):
if values2 >= values:
baskets.pop(key2)
sum1 += 1
break
elif len(baskets)-1 == key2:
max_values = values if values2<max_values else max_values
break
return len(fruits)-sum1
# return len(baskets)
if '__main__' == __name__:
fruits = [1,3,6,4,78,99,99]
baskets = [2,5,2]
s = Solution()
print(s.numOfUnplacedFruits(fruits=fruits,baskets=baskets))