![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 65
小宇宙Zz
明知不可为而为之,虽千万人吾往矣
展开
-
完全背包与多重背包
所谓完全背包,就是每一件物品有无数件,可以多次选择同一件物品,我们之前将了一维化01背包,其中探讨了一维化dp数组遍历顺序的重要性,在这里我们在复述一下,在一维化dp数组里,在遍历背包顺序中,不能按照背包容量从小到大遍历,否则会出现多次选择同一件物品的情况,所以一维化01背包我们选择的是按照背包容量从大到小遍历。看到这里,想必已经有头绪了,完全背包可以多次选择同一件物品,那我们按照背包容量从小到大遍历即可。原创 2024-03-05 14:11:38 · 311 阅读 · 0 评论 -
一维化01背包(详细)
之前我们介绍了01背包,但是dp数组是二维化的,现在我们需要将其变成一维数组,如果已经对二维化的01背包十分了解了,那么理解一维化的dp数组也不是问题。原创 2024-03-05 13:18:15 · 426 阅读 · 1 评论 -
01背包(详细)
背包最大重量为4。有物品3件,分别有其质量和价值。问背包能背的物品最大价值是多少?这是标准的动态规划问题,每一个问题鱼鳍前面的子问题相联。原创 2024-03-02 15:53:18 · 792 阅读 · 1 评论 -
不同的二叉搜索树
给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?所谓动态规划,所涉及的问题是要求的问题会与前面的子问题相关联,并由前面的子问题推导而来,这一点如果学过数学归纳法就会觉得十分眼熟。作为这道题而言,所谓二叉搜索树,其必须满足的条件就是,左子树的所有成员一定都小于根节点,右子树的所有成员一定都大于根节点。原创 2024-02-29 15:09:22 · 378 阅读 · 0 评论 -
解数独问题
乍一看解数独和N皇后问题很像,甚至会更难些,但其实我觉得二者是差不多的,在解数独的代码里,会加入一个二维的结构,但是其实我们不必那样想,数独是一个9*9的表格,我们可以将其拆成一条竖下来的线,即第二行接到第一行末尾,第三行接到第二行末尾......解数独只有一种正确解法,我们只需要找到即可,不需要结果集来搜集,回溯函数的返回值设置为bool,一旦满足条件(最后一个格子也遍历)即返回,结束函数。这样一来,整个表格就成了一个竖向的表格,其中每一个格子都有1~9可能性,这与n皇后的每一层就非常相似了。原创 2024-02-26 18:02:44 · 271 阅读 · 1 评论 -
滑动窗口(双指针)
在一个数组或字符串中找到满足条件的子数组或子串,通过移动起始位置和终止位置,从而构造成一个滑动的窗口,使得单次遍历便可解决问题,时间复杂度较低。原创 2023-12-24 16:21:46 · 382 阅读 · 1 评论 -
KMP判断是否由重复字符串组成
给出一字符串,判断其是否由重复子字符串组成。即:输入:asdasdasd输出:true输入asdfg输出:false。原创 2023-12-24 13:47:46 · 499 阅读 · 1 评论 -
KMP算法
aabaabaafaabaaf逐个匹配,匹配到f时,b与f不相等,此时看f前一位的next数组元素(next会在后面说明),并在子串中跳到对应数字位置,继续匹配。在f前一位的next数组元素是f前面子串(aabaa)的最长前后缀,即2,这时候说明这个子串的开始两位与末尾两位一模一样,这说明了什么?原创 2023-12-22 17:44:30 · 1530 阅读 · 1 评论