竞赛
考级
朴实无华的单调队列,由于两端都需要删除,所以记得用dequedequedeque 我们只需要找sumR−sumLsum_R-sum_LsumR −sumL 作为结果即可,因此可以枚举RRR找对于当前RRR的最大ansansans,又因为是找最大,则找对于sumRsum_RsumR 最小的sumLsum_LsumL ,故用单调递增队列
沈思邈
前面输入+前缀和就不解释 遍历过程: * 对于每个位置iii,首先检查队列头部元素是否超出窗口范围,如果超出则移动lll指针。 * 计算以当前位置为右端点的最大子数组和,并更新maximaximaxi。 * 维护队列的单调性,从队列尾部开始移除所有大于等于当前前缀和的元素,通过移动jjj指针实现。 * 最后将当前位置iii加入队列,即de[j++]=i 最后:时间复杂度:O(n)O(n)O(n)
咕咕咕
提交答案之后,这里将显示提交结果~