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