摘要: 首先可以用扫描法处理出一个height数组, 来保存从当前行开始, 每一个格子可以向上延伸的最大长度。这种“延伸”的问题用扫描法, 因为往往这个时候可以利用前一次的结果来更新当前的值然后这道题的关键就是是维护一个单调栈, 栈顶的元素就是当前状态所求的答案。这个单调栈满... 阅读全文
posted @ 2018-05-01 17:06 Sugewud 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 从左往右扫描一遍, 得从每个位置往右伸长不会碰到天花板的高度, 右往左一样, 取最小, 然后就是可以放“水”的高度了#include#include#define REP(i, a, b) for(int i = (a); i level) level = p[i]... 阅读全文
posted @ 2018-05-01 15:37 Sugewud 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 这道题用构造法, 就是自己依据题目想出一种可以得到解的方法, 没有什么规律可言, 只能根据题目本身来思考。这道题的构造法比较复杂, 不知道刘汝佳是怎么想出来的, 我想的话肯定想不到。具体思路紫书上讲得非常清楚了, 就不讲了。代码有详细注释#include#includ... 阅读全文
posted @ 2018-05-01 15:08 Sugewud 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 题意: 判断所给序列是否满足任意连续子序列中至少有一个出现一次的元素。思路:在整体中找到一个只出现一次的元素, 然后在递归两边。因为两边的序列中有这个数那就满足要求, 所以就看剩下的序列漫步满足要求。 参考了 https://www.cnblogs.com/jerry... 阅读全文
posted @ 2018-05-01 11:52 Sugewud 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 这道题就是给你一n长序列, 然后把这个序列按顺序分成很多段, 每段长s(最前面可以小于s, 只有第一段的后半段, 最后面也同样, 只有最后一段的前半段), 然后要求是每一段里面没有重复的数, 问你有几种分法实际上看到连续s个数, 就可以想到滑动窗口, 可以提前初始化所... 阅读全文
posted @ 2018-05-01 10:53 Sugewud 阅读(129) 评论(0) 推荐(0) 编辑