算法
文章平均质量分 68
期待777
这个作者很懒,什么都没留下…
展开
-
01背包问题详解
文章目录 在下面的讲解中,我举一个例子: 背包最大重量为4。 物品为: 重量 价值 物品0 1 15 物品1 3 20 物品2 4 30 问背包能背的物品最大价值是多少? 确定dp数组以及下标的含义 对于背包问题,有一种写法, 是使用二维数组,即dp[i][j] 表示从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 确定递推公式 再回顾一下dp[i][j]的含义:从下标为[0-i]的物品里任意取,放进容量为j的背包,价值总和最大是多少。 那么可以有两个方向推出来dp[i][j].原创 2021-10-23 18:35:07 · 109 阅读 · 0 评论 -
你必须了解的动态规划算法
文章目录动态规划动态规划的本质动态规划使用场景例题1:斐波那契数列例题2. 变态跳台阶变形1:一次只能跳1级或者2级(类似于斐波那契数列)变形2:矩形覆盖例题3:最大连续子数组和例题4:拆分词句 动态规划 动态规划是分治思想的延伸,大事化小小事化无 动态规划具备的特点: 1.把原来的问题分解成几个相似的子问题 2.所有的子问题都只需要解决一次 3.存储子问题的解 动态规划的本质 动态规划的本质,是对问题状态的定义和状态转移方程的定义 从以下角度考虑: 1.状态定义(定义的状态一定要形成递推关系) 2.状.原创 2021-04-22 22:53:38 · 989 阅读 · 5 评论 -
搜索算法--DFS(深度优先遍历算法)
文章目录DFS模板例题1:员工的重要性例题2:图像渲染例题3.被围绕的区域例题4.岛屿数量(联通区域个数问题) DFS 模板 #include<iostream> using namespace std; #include<vector> void dfs(vector<int>& boxs, vector<int>& used, int index){ if (index == boxs.size()){ for (int i =.原创 2021-04-24 11:55:58 · 262 阅读 · 0 评论