问题描述:
幼儿园上午加餐吃面包,假设每个孩子的饥饿程度不同,面包大小也不同。第一轮分配中每个孩子只能吃一块面包,能吃饱(可以按需撕开一块面包,多余的面包参与第二轮分配)的孩子不再参与第二轮分配。如果第一轮分配中没有合适的面包能让孩子吃饱,就参加第二轮分配,最终让所有孩子都吃饱。已知若干孩子的饥饿程度和面包,求解第一轮分配中最多有多少孩子能吃饱,以及哪些孩子能吃饱。
算法思路:
对孩子们的饥饿程度和面包大小都升序排列,然后按饥饿程度从小到大为孩子们分配面包,从小到大查找第一个能够让当前孩子吃饱的面包进行分配。
参考代码:
运行结果: