
算法
BonjourDurant
UCLA在读研究生,天秤座一枚,未来计划在湾区工作。喜欢研究数据结构和日语,不喜欢吃甜食,最喜欢的歌手是米津玄师。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
做一只可爱的小猪背包 [Cover 背包九讲]
做一只可爱的小????背包 小猪背包是饥荒玩家梦寐以求的背包。我们这次好好研究一下背包问题。 推荐观看dd大牛:背包九讲的传送门, 「背包九讲」视频教程 0-1 背包 完全背包 多重背包 I II III 混合背包问题 二维费用的背包问题 分组背包问题 背包问题求解方案数 求背包问题的方案 有依赖的背包问题 I. 0-1背包问题 注意解空间极大问题有时可以转化0-1背包,从而避免TLE! 题目:有一个容量为 V 的背包,和一些物品。这些物品分别有两个属性,体积 w 和价值 v原创 2020-09-13 11:35:01 · 723 阅读 · 0 评论 -
浅析回溯法
浅析回溯法 想必大家都玩过一些智力游戏,比如解数独,华容道,魔方,甚至围棋这些。 让我们用计算机去解决这些问题,并且使得时间尽可能短,一种可能的方法是回溯法,现在已经有用机器学习中的对抗学习(GAN)以及强化学习(RL),著名的有AlphaGo以及OpenAI,后者甚至可以在最难的MOBA类游戏战胜人类。 推荐阅读Liweiwei1419大佬的「回溯算法入门级讲解」 解数独 24点游戏 N皇后 扫雷游戏 祖玛游戏 679. 24点游戏 你有 4 张写有 1 到原创 2020-09-08 21:39:40 · 442 阅读 · 0 评论 -
滑动窗口法
滑动窗口是面试中一大难点,幸运的是我们有模板 滑动窗口 Sliding Windows,是一类很看重细节的问题,题目通常为Medium或者hard LC11.盛水最多的容器, LC76. 最小覆盖子串 给你一个字符串 S、一个字符串 T,请在字符串 S 里面找出:包含 T 所有字符的最小子串。 示例: 输入: S = "ADOBECODEBANC", T = "ABC" 输出: "BANC" 如果 S 中不存这样的子串,则返回空字符串 “”。 如果 S 中存在这样的子串,我们保证它是唯一的答案..原创 2020-09-08 21:35:17 · 742 阅读 · 0 评论 -
解空间极大问题通用策略
面对解空间极大问题,我们如何处理? 提示:文章较长,建议分时食用。原创 2020-09-08 21:32:19 · 785 阅读 · 0 评论 -
回文如何才能不难
回文如何才能不难 直觉上:回文≈难题,LC上的回文难题, 但是总不能指望面试/周赛出中等题吧? 回文对 最短回文串 分割回文串 统计不同的回文子序列 超级回文数 段式回文 … 1. 线性时间内解决回文串问题——Manacher算法 {竞赛难度} Manacher 算法是在线性时间!内求解最长回文子串的算法。在本题中,我们要求解回文串的个数,为什么也能使用 Manacher 算法呢?这里我们就需要理解一下 Manacher 的基本原理。 Manach原创 2020-09-08 21:23:00 · 159 阅读 · 0 评论 -
图的几种表示方法
图的几种表示方法 1.邻接矩阵表示法 如图: 也就是说,如果两节点之间有一条弧,则邻接矩阵中对应的元素为1;否则为0。可以看出,这种表示法非常简单、直接。但是,在邻接矩阵的所有元素中,只有少量为非零元。如果网络比较稀疏,这种表示法浪费大量的存储空间,从而增加了在网络中查找弧的时间。 同样,对于网络中的权,也可以用类似邻接矩阵的 矩阵表示。只是此时一条弧所对应的元素不再是1,而是相应的权而已。如果网络中每条弧赋有多种权,则可以用多个矩阵表示这些权。 2. 关联矩阵表示法 也就是说,在关联矩阵中,每行对应于原创 2020-09-08 21:20:45 · 3240 阅读 · 0 评论 -
多指针问题
多指针问题 75.颜色分类 1574.删除最短的子数组使剩余数组有序 很多时候多指针(双指针,三指针)能极大的帮助我们降低时间复杂度。 比如求链表到数第N个节点,以及判断链表中是否有环。 今天我们看LeetCode 75.颜色分类,原型是荷兰国旗问题。 给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 注意: 不能使用代码库中的排序函数来解决这道题。原创 2020-09-08 21:19:05 · 411 阅读 · 0 评论 -
傻乎乎地分不清楚树状数组与线段树?
“树状数组和线段树都是用于维护数列信息的数据结构,支持单点/区间修改,单点/区间询问信息。以增加权值与询问区间权值和为例,其余的信息需要维护也都类似。时间复杂度均为***O(logn)***。 ” 数学证明:https://zhuanlan.zhihu.com/p/191524460 练习题目 计算右侧小于当前元素的个数 最大子序和 I. 树状数组 Fenwick Tree 地中海的程序猿们研究数组,时候遇到这样一个问题: 有一个数组SSS从0−n−10 - n-10−n−.原创 2020-09-03 13:58:12 · 413 阅读 · 0 评论 -
动态规划-自己的一点理解
动态规划(DP)的重要性我就不用说了,LeetCode 上DP问题多达228道,仅次于数组301题。 个人感觉,DP问题就像斐波那契数列一样,你需要找到能够递归的通式子,我们把这个式子称作状态转移方程,没错,就是数电里面那个~ o( ̄▽ ̄)o。 然后,现在我们干一件事情,把DP题目罗列出来,找到共同点,未来我们要做到看一眼题目就知道用什么方法。 下面摘至Huahua’s problem set. 爬楼梯 (Easy) 使用最小花费爬楼梯 (Easy) 打家劫舍(Easy) 最小路径.原创 2020-09-03 13:28:54 · 976 阅读 · 0 评论