Problem & My Submission(which passed Samples)。
我的思路是这样的:
对于每一个 i=(1,2,3,…,n) 进行处理。二分答案时间。
题目中的每次操作相当于在 a 中选择两个相邻的且值不同的数,将这两个数合并为它们的和。所以最终合并出来的一个数在原序列中一定是连续的。
所以二分答案 mid,相当于是判断区间 [i−mid,i−1] 或者 [i+1,i+mid] 是否合法,即能不能先把这个区间合并成一个数,再用这个数吃掉 ai。
我认为这个区间合法的条件是:
- 区间和 >ai。
- 区间长度为 1 或区间内没有重复数字。
自己认为无懈可击,也过了样例。而且基本可以确定单吗实现上没有问题而是思路的问题。因此帮忙找找错,感谢 dalao 们。