算法刷题笔记
算法刷题笔记
Curren.wong
公众号:复杂网络与机器学习
上海理工大学 计算机专业
霍尼韦尔 数据分析实习生
展开
-
LeetCode 1601 最多可达成的换楼请求数目
状态压缩,暴力求解。原创 2020-09-29 15:52:12 · 598 阅读 · 0 评论 -
LeetCode 第208场周赛 题解 C++
题目以模拟和DFS为主,最后一题可以使用暴力求解也可以使用最大流。原创 2020-09-29 11:36:32 · 295 阅读 · 0 评论 -
LeetCode 1600 皇位继承顺序 DFS
DFS遍历每个分支,用`unordered_set`记录死亡的人名,在输出时跳过即可。原创 2020-09-29 11:31:33 · 220 阅读 · 0 评论 -
Leetcode 1599 经营摩天轮的最大利润 简单题 模拟
简单题,按照题意进行模拟即可。原创 2020-09-29 01:25:18 · 212 阅读 · 0 评论 -
LeetCode 1598 文件夹操作日志搜集器 简单题
简单题,遇到 `../` 时文件夹深度减1,文件夹深度为0时不再减少,遇到 `x/` 时深度加一。原创 2020-09-29 01:15:08 · 344 阅读 · 0 评论 -
LeetCode 1004 最大连续1的个数 III 滑动窗口、尺取法
滑动窗口、尺取法。统计窗口内`0`的数量是否大于`K`,大于`K`则减小窗口大小。原创 2020-09-26 18:52:24 · 326 阅读 · 0 评论 -
LeetCode 1595 连通两组点的最小成本 状压DP
状态压缩`DP`原创 2020-09-26 02:14:09 · 714 阅读 · 0 评论 -
LeetCode 第 207 场周赛 题解 C++
LeetCode 第 207 场周赛 以动态规划、DFS为主原创 2020-09-22 03:26:45 · 145 阅读 · 0 评论 -
LeetCode 1594 矩阵的最大非负积 动态规划 DFS
把这道题转化为树形的问题来理解会更好理解,把每条路径看作树上从起点到终点的路径。如图所示。原创 2020-09-22 03:20:18 · 416 阅读 · 0 评论 -
LeetCode 5520 拆分字符串使唯一子字符串的数目最大 DFS
DFS遍历所有长度。原创 2020-09-22 03:07:01 · 170 阅读 · 1 评论 -
LeetCode 1592 重新排列单词间的空格 字符串处理
先统计单词和空格数量, 然后计算中间和剩下的空格数量。原创 2020-09-22 02:59:11 · 451 阅读 · 0 评论 -
华为OJ 75 公共子串计算 动态规划 最长公共子串
动态规划。 `list[i][j]`表示以`str1[i]和str2[j]`结尾的最长公共子串, 递推方程如下。原创 2020-09-19 18:11:51 · 203 阅读 · 1 评论 -
LeetCode 53 最大子序和 动态规划 DP
动态规划,用 f(i) 代表以第 i 个数结尾的`连续子数组的最大和`,递推方程如下。原创 2020-09-19 16:39:21 · 103 阅读 · 0 评论 -
LeetCode 5 最长回文子串 动态规划 区间DP
递推方程 `dp[i][j] = dp[i + 1][j - 1]`,表示如果子串 `buf = s[i , j + 1]` 首位相等,则只要去掉`buf`的首尾端点后的子串 `s[i + 1 , j]`是回文串,那么`buf`一定是回文串。原创 2020-09-19 03:10:14 · 368 阅读 · 0 评论 -
牛客网 NC17866 谁是神射手 概率论
比较 \alpha 和 (1 - \alpha) \beta 的大小就可以了。原创 2020-09-18 19:55:01 · 357 阅读 · 0 评论 -
LeetCode 98 验证二叉搜索树 DFS 二叉树中序遍历
DFS,先判断节点是否为空,然后分别比较左右节点的值。需要注意先将上下界设置为 `LONG_MIN` 和 `LONG_MAX`。也可以使用中序遍历,二叉搜索树的中序遍历应该是递增的,如果出现非递增则返回 `False` 。原创 2020-09-18 00:37:20 · 1885 阅读 · 0 评论 -
LeetCode 101 对称二叉树 DFS
DFS,先判断节点是否为空,然后分别比较左右节点的值是否相等。这里需要注意的是根节点为空时是对称的。原创 2020-09-17 19:30:54 · 148 阅读 · 0 评论 -
LeetCode 100 相同的树 DFS
DFS,先判断节点是否为空,然后比较左右节点的值是否相等。原创 2020-09-17 19:18:01 · 131 阅读 · 0 评论 -
LeetCode 1 两数之和 哈希表 STL基本用法
可以使用暴力方法二重循环来做,也可以使用哈希表。原创 2020-09-16 16:04:04 · 90 阅读 · 0 评论 -
牛客网 字节跳动2019真题 聪明的编辑 正则表达式
使用正则表达式中的子模式匹配。原创 2020-08-22 00:32:43 · 217 阅读 · 0 评论 -
牛客网 NC20859 兔子的名字
每读入一个模式串,遍历每个主串,对每个模式串中的字母进行依次匹配,下一次匹配的位置从上一次匹配完的位置开始,防止重复和乱序。原创 2020-08-22 00:02:40 · 416 阅读 · 0 评论 -
牛客网 NC205087 牛妹爱数列
区间动态规划原创 2020-08-18 23:43:30 · 330 阅读 · 0 评论 -
牛客网 NC205086 牛牛爱博弈 思维题
如果 n mod 3 = 0 就能满足以上条件。原创 2020-08-15 16:23:50 · 268 阅读 · 0 评论 -
牛客网 NC205084 牛牛爱字符串
从字符串中提取数字,并去除先导0,需要注意这里不能用`while(cin>>str)`,因为会跳过输入字符串中的空格。原创 2020-08-15 00:10:38 · 323 阅读 · 0 评论 -
牛客网 NC14520 有趣的数学 暴力枚举
先枚举第 1e6 个单身数,发现其为 99999971,也就是一共需要大概 1e8 次的运算,可以进行暴力求解。原创 2020-07-22 11:29:20 · 187 阅读 · 0 评论 -
HDU 2222 Keywords Search AC自动机 Fail数组详解
AC自动机 (Aho-Corasick automaton) 的模板题。原创 2020-06-23 16:31:38 · 543 阅读 · 0 评论 -
CodeForces 2020 Ateneo de Manila University D. Riana and Distribution of Pie 思维题
CodeForces 2020 Ateneo de Manila University DISCS PrO HS Division D. Riana and Distribution of Pie原创 2020-06-10 13:54:44 · 368 阅读 · 0 评论 -
牛客网 NC26156 G. 最长递增长度 最长上升子序列
求最长递增子序列的长度。用 O(n^2) 的 DP 试了一下超时了,所以这题可能需要使用 O(n log n) 的算法。原创 2020-06-09 12:03:40 · 460 阅读 · 0 评论 -
牛客网 NC207429 最大值 KMP
推荐一个 KMP算法的可视化网站,里面还有各种算法的可视化,可以帮助理解。原创 2020-06-04 17:25:34 · 458 阅读 · 0 评论 -
牛客网 NC207427 直线 高精度
第 i + 1 条线最多能和前 i 条线都相交,产生 i 个新的交点。原创 2020-06-04 01:28:46 · 388 阅读 · 0 评论 -
CodeForces 591 B. Rebranding 字符串处理
字符串处理,直接对整个输入字符串进行替换会超时,所以先构建一个26个字母组成的字符串,然后对字符串中的字母进行替换,最后对输入字符串进行替换。原创 2020-06-03 16:33:28 · 419 阅读 · 0 评论 -
CodeForces 591 A. Wizards Duel 简单题
简单题原创 2020-06-03 02:22:38 · 216 阅读 · 0 评论 -
2020 年 “联想杯”第三届上海理工大学程序设计竞赛 H. Hay Mower 矩阵操作
直接用二维数组存矩阵,然后在每个 $t_i$ 对整个矩阵进行更新的话会超时。每次只对一行/列进行运算。原创 2020-05-31 14:01:26 · 735 阅读 · 0 评论 -
牛客网 NC207078 交换 贪心算法
先将数组排序,我们就得到每个数排序后的位置。然后对原始的数组进行遍历,如果它的位置和排序后的位置不一致,则将其交换到排序后的位置。原创 2020-05-26 02:34:54 · 505 阅读 · 0 评论 -
牛客网 NC207028 第k小数 STL基本用法
数据太大了,用STL中的nth_element()函数可以通过,sort()和partial_sort() 都会超时。原创 2020-05-25 22:54:43 · 519 阅读 · 0 评论 -
2020 游族杯 Problem F. Find / -type f -or -type d 字典树
2020 ECNU Campus Online Invitational Contest Problem F原创 2020-05-24 16:34:09 · 623 阅读 · 0 评论 -
牛客网 NC200435 找朋友 并查集
使用并查集进行求解。原创 2020-05-23 16:14:45 · 341 阅读 · 0 评论 -
CodeForces 1355 A. Sequence with Digits 暴力剪枝
直接根据公式进行计算,遇到0时则直接返回0。原创 2020-05-22 12:11:29 · 202 阅读 · 0 评论 -
CodeForces 1355 B. Young Explorers 暴力剪枝
暴力剪枝原创 2020-05-22 00:30:55 · 321 阅读 · 0 评论 -
牛客网 NC204859 组队 滑动窗口
先对数组从小到大进行排序,如果 [left, right] 区间内的数都满足 list[right] - list[left] <= k,则 right = right + 1,否则 left = left + 1,每滑动一次计算一次 ans = right - left,取所有情况的最大值即可。原创 2020-05-21 23:07:32 · 482 阅读 · 0 评论