依旧是不太难的一题(如果有好的思路)
先说结论:相等战力怪物数量最多的值。
下面是证明:
设战斗力最小(i1)的怪物,有x个。
且有y个战斗力比他略高(i2)的怪兽(不存在一个战斗力为im的怪物使得i1<im<i2)
如果y>x,其中的x个会赶走原先的x个怪兽,还有y-x个怪物未参与战斗,最终一共有y个怪物。
如果y=x,那么y个怪物把x个怪物全部赶走,最终一共有y个怪物。
如果y<x,那么其中y个会赶走y个战斗力为i1怪物,留下x-y个战斗力i1的怪物,最终一共有x个怪物。
最终发现实际上结果是x和y中的最大值。
可以进一步推广到i2和i3的情况,甚至是i(n-1)和in的情况。
不过在y<x中的情况要进一步考虑,留下来的i1的怪物,在后续的比较中,也一定存在着i1<i2<in,大小并不重要。
所以综上,我们只需要统计所有战力相等的怪物,最终求出他们的最大值即可。
以下是代码: