桌子上有n个瓶子,瓶子编号从1到n,第i个瓶子里装mi克(mi为非负整数)的水,小明每次选择一个区间【i,k】(1<=i<=k<=n)编号中的水瓶,并将每个水瓶里的水放出1克,希望你设计一种方法,使小明可以在最少的次数里将所有瓶子里的水放完。
样例:
5个瓶子
每个瓶子分别装水 3 4 2 3 1
一个可行方案
【1,5】
【1,4】
【1,2】
【2,2】
【4,4】
小明要5次能把所有水放完
输入包括两行 格式为:
5
3 4 2 3 1
输出一个整数
5
请各位大佬给个思路或者简单的代码就可以,我的思路是感觉随着水越来越少,数组会被分成好几份,然后次数也就会变多,但是怎么算法实现没想出来。
全部评论
(2) 回帖