猴子吃香蕉

470 阅读1分钟

题目

image.png

参考连接:最少需要准备多少香蕉,能保证所有猴子都能吃饱

思路

(1) 因为是求最少准备多少香蕉, 因此每次都是考虑猴子吃的最少的情况, 可以不一次性准备好香蕉, 而是按照每个猴子的需求, 动态的进行准备, 最后将所有的准备结果求和.

(2) 假设第一只猴子, 食量为5, 那么为了满足不会超过当前的一半, 就需要准备10个香蕉.

(3) 第一次完毕后, 还剩5个香蕉, 如果第二次猴子的食量为2, 那么就不需要额外准备香蕉, 如果食量为3, 需要额外准备1个.

(4) 最后一个猴子, 只需要补足他食量的就可以. 假设为10

(5) 如果就三只猴子, 食量为5, 3, 10. 第一次准备10, 剩5, 第二次准备1, 剩3, 第三次准备7.

可那么需要的最少香蕉数目就是10 + 1 + 7 = 18个.