题解 1523: 蓝桥杯算法提高VIP-打水问题

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

蓝桥杯算法提高VIP-打水问题-题解(Java代码)【详细解析】

//题目分析://找每个水龙头用时最少的,也就是说刚开始都是一样的,从一个水龙头开始加时间1,那么第二个水龙头和第三个就都是0,所以第二个要加时间2,然后三个水龙头中第三个时间最少,所以加3,即//龙头一的时间:1//龙头二的时间:2//龙头三的时间:3//同理,

蓝桥杯算法提高VIP-打水问题-题解(Java代码)

摘要:解题思路:先把数组排序,先处理第一个水龙头的时间time,他的元素有 第j号元素、第j+m号…… ,用 cc 来记录 前面出现的数的和,直到j >= a.length-1(或者判断在中间某位 + m ……

最省事、省内存、高效的写法

解题思路:第一步,先给数组排好序。第二步,在这个数组,怎么按照题目思路,给定一个和m龙头的映射。是新建m个数组?No,就在原有数组上做文章。第三步,对单独一个桶,怎么处理累计时间。很容易发现,对一个龙头arr[1,2,3,4]第一个不用等(0),第二个要等的是,前一个人的用时(1)。

蓝桥杯算法提高VIP-打水问题 (Java代码)

解题思路:按照题目意思可以得知,最少排队时间的方法是,按照打水时间少的依次进入1....m队列排队打水,而且每个队伍最后一个人不需要等待,即m个人不需要等待,每个人的等待时间为前一个人的等待时间加上他的打水时间注意事项:参考代码:importjava.util.Arrays;importjava.ut

蓝桥杯算法提高VIP-打水问题-题解(Java代码)

简单说一下结题思路:为了节省时间肯定要把打水时间长的人向后排,因为这样长时间接水的人就不用别人等了,所以我将数组排序后直接将最后的水龙头数量的大数字赋值为0;然后分别计算每个水龙头接水人消耗掉的时间,最后累加求出结果;我用的是二维数组,以水龙头为单位计算;二维数组的两个维度分别为:1.水龙头数;2.总