题目:
思想:
- 这道题很简单,但是我好像没用贪心的思想。看第二个测试用例发现,其实最少秒数就是尽量避免某个数先归0。
所以就不断地排序,始终对最大的两个数操作。这个发给发也可以用于多哥amount的情况,但是因为排序的原因,我不知道能不能用于极大数。
看了ylb大佬的,和我一样但是大佬的细节处理得很好,比我少两个判断,那看来下面的分类讨论方法可能是难题情况的解。 - 数学方法?将饮料按数量从小到大排序,设数量为 x,y,z。我们的目标是匹配尽量多不同的饮料。
若$x+y<=z$,则答案为z。若反之,则设$t=(x+y-z)$,t是偶数则答案为
$ \frac{t−1}{2} +z$反之加一
代码:
1 | class Solution: |
1 | import "sort" |