摘要: 写单调队列时,其实一共有三个操作:取队头,弹出过期元素,加入新元素; 要结合实际循环和题目来决定在循环体内部这三个操作的顺序,顺序,顺序!有时感觉不恰当的时候,往往是顺序没设置完美 --编辑于2020.06.27 题目描述: 有一个长度为 n 的数列和一个大小为 k 的窗口, 窗口可以在数列上来回移 阅读全文
posted @ 2020-04-01 21:16 菜鸡今天学习了吗 阅读(141) 评论(0) 推荐(0)
摘要: 题目描述: 一个长度为 n 的字符串 s,其中仅包含 'Q', 'W', 'E', 'R' 四种字符。 如果四种字符在字符串中出现次数均为 n/4,则其为一个平衡字符串。 现可以将 s 中连续的一段子串替换成相同长度的只包含那四个字符的任意字符串,使其变为一个平衡字符串,问替换子串的最小长度? 如果 阅读全文
posted @ 2020-04-01 18:11 菜鸡今天学习了吗 阅读(168) 评论(0) 推荐(0)
摘要: 题目描述: 给定一个长度为n的序列A,要求支持操作ADD(L,R,x)表示对A[L]~A[R]的每个数都加上x。问最后序列A是什么样的。 思路: 用差分数组实现区间操作,最后差分数组的前缀和SUM[i]就是A[i] 具体的,设差分数组为B,则对A[L]~A[R]的每个数都加上x,等价于,对B[L]+ 阅读全文
posted @ 2020-04-01 17:39 菜鸡今天学习了吗 阅读(119) 评论(0) 推荐(0)
摘要: 题目描述: 给一个直方图,求直方图中的最大矩形的面积。例如,下面这个图片中直方图的高度从左到右分别是2, 1, 4, 5, 1, 3, 3, 他们的宽都是1,其中最大的矩形是阴影部分 思路: 对于第i个矩形,以其高度h[i]能组成的最大矩形是通过如下方式求的:找出i左边第一个高度小于h[i]的,和i 阅读全文
posted @ 2020-04-01 17:33 菜鸡今天学习了吗 阅读(137) 评论(0) 推荐(0)