leetcode随便刷刷

随便刷刷leetcode

10 正则表达式匹配

动态规划

(f_{i,j})表示当前匹配到(i,j)是否成功,注意边界情况和空串。

30 串联所有单词的子串

(hash)+滑动窗口

32 最长有效括号

正反各做一遍

42 接雨水

线段树维护区间最大值位置、区间(Sum),复杂度(nlogn)

有更优秀的单调栈和(dp)做法可以做到(O(n))

正反各做一遍也是(O(n))

41 缺失的第一个正数

桶排

87 扰乱字符串

比较好的(dp)题(其实是(easy)

考虑每次交换两个子串之后子串之间互不影响

(f_{i,j,k})表示(s)串的(i,j)区间和(t)(k)开头区间匹配是否成功。

转移(f_{i,j,k} =(f_{i,k+j-m,m} and f_{k+j-m+1,j,k}) or (f_{i,m-k+i-1,k} and f_{m-k+i,j,m}))

乘法原理可求方案数(扩展),复杂度(O(n^4))

240周赛

5750 人口最多的年份

模拟题。

5751 下标对中的最大距离

二分。

5752 子数组最小乘积的最大值

线段树维护最小值位置。

5753 有向图中最大颜色值

(dag)(dp)

原文地址:https://www.cnblogs.com/Tyher/p/14747670.html