算法题思考
文章平均质量分 59
小小愿望啦
无论你对此生的决定为何,一定要真诚地对待自己。
展开
-
字典序算法题总结
刷题中经常遇到字典序排序问题,通过两道题目,管中窥豹,可见一斑。原创 2022-04-18 10:50:22 · 946 阅读 · 0 评论 -
LeetCode689错误的贪心思路
题目是找3个长度为k的不重叠的子数组,和最大。 错误思路: 一开始理解成不重合,只要有一个不同就是不同的子数组。所以先用滑动窗口生成了所有长度为k的子数组的和,选和最大的前3个。 后来发现是不重叠,想用贪心,先选和最大的子区间,然后选不重叠的和最大的。知道这样不一定保证最优解,尝试选前10大的子区间,再从比它小的子区间里选不重叠的最大的。 代码如下 private boolean chongDie(int b, List<Integer> a, int k) { for原创 2021-12-08 10:44:51 · 195 阅读 · 0 评论 -
LeetCode 337打家劫舍3(树形DP+dfs)如何正确地记忆化搜索
思路:如果选择树的当前节点就不选择左右孩子节点,为了避免对节点重复dfs超时,使用map记录已经访问过的节点。 代码如下: class Solution { public: map<TreeNode *, int> mp; int dfs(TreeNode* tree, int type) { if (tree == NULL) return 0; if (mp[tree] != 0) return mp[tree]; if (ty原创 2020-08-05 21:45:19 · 199 阅读 · 2 评论 -
bfs不适用于记忆化搜索的一道题
dfs和bfs往往需要穷竭搜索所有情况才能得到最优解,记忆化搜索通过增加一些变量来存储某些搜索过的情况避免重复搜索不必要的耗时。正常记忆化搜索都是用dfs实现,为什么不使用bfs呢?原创 2020-04-05 21:57:19 · 219 阅读 · 1 评论