题目解析
用例1图示:
用例2图示:
简单的二分策略题目。
最小的minLimit = 0,最大的maxLimit = max(R),
二分取minLimit和maxLimit的中间值作为limit,求解该limit下所有上游系统发起的调用量之和sum,计算规则为:
- 如果 R[i] > limit,则sum += limit
- 如果 R[i] <= limit,则sum += R[i]
求得limit下的调用量之和sum后,比较sum和cnt:
- 如果 sum > cnt,则说明limit取大了,我们应该让maxLimit = limit - 1,这样下次二分时,limit就会变小
- 如果 sum <= cnt,则说明此时的limit是一个可能解,我们应该记录此时的limit到ans,并且继续尝试求更优解,即认为此时limit取小了,我们应该让minLimit = limit + 1,这样下次