fornobugworld
fornobugworld
所以这道题是不是有外递归迭代,内递归迭代,共四钟组合解法。。。
最后讲的太好了,我就觉得学数学跟学计算机特别矛盾,原来还是有问题的哈哈哈
这个递推公式跟别的递归都不一样,每一步都重新计算前面所有可能,复杂度O(n)的状态转移第一次见,算是奇葩题吧。。
黑名单看着确实有点难理解,可不可以修改数组,直接把黑名单都移动到后面,这样省着映射了。。
DP table版应该再初始一个dp[0][0]=0吧
困难题细节太多了。。
base case代码里没写dp[0][j]的情况
感觉思路上首先想到的应该是前序遍历,这里采用后序再反转的原因是,主函数开始时要把所有点作为根节点弄一遍,前序会出问题。 不怕背模板,就怕小技巧,只能多做题呜呜呜
> 第2和第3题的 // 判断左侧窗口是否要收缩 while (right - left >= t.size()) { 这里判断条件应该有误,在right - left > t.size()时,此时得到的序列是不满足题目要求的 哈哈哈,这里的确是个思维误区,也不用二楼说的加个条件,我想了一天,还专门把代码跑了一遍发现没错。 问题出在这里窗口右边走一步,左边立即缩短。我们顺着之前的模板思考以为先是右边界一直走到包含子串再移动左边界,而这里左边界其实早就动起来了,一直保持着子串长度左右!
最后一题好像还包含一个小技巧,res会被刷新一遍,太妙了。。