
算法
隔壁阿源
先证明你的价值,再来讨论你的雄心壮志。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树
一.文件树 每个结点的子结点不一样,使用链表存储节约空间。 package my; import java.awt.print.Printable; public class Test { public static void main(String[] args){ TreeNode root = new TreeNode("usr"); construct(root); ...原创 2018-10-20 22:12:08 · 165 阅读 · 0 评论 -
回溯算法
1.回溯算法是什么 回溯算法又称“穷举法”,是一种通用解题的方法。 解题框架: void backtrack (int t) { if (t>n) output(x); //叶子节点,输出结果,x是可行解 else for i = 1 to k//当前节点的所有子节点 { x[t]=value(i)...原创 2018-10-31 08:59:15 · 317 阅读 · 0 评论 -
贪心算法
贪心算法其实就是一种分而治之思想的体现。一个大规模的问题,在小规模下达到最优,那么很有可能在整个大规模下也达到最优,但并不绝对。 贪心算法的“贪心”就体现在局部达到最优。 举个可以使用贪心算法的栗子: /** * 贪心算法 找硬币 * 有 1 2 5 10 20 50 100 7种纸币面额 *数量3 1 2 1 1 3 5 用最少张找出 ...原创 2018-12-31 13:50:05 · 623 阅读 · 0 评论 -
动态规划
漫画算法 国王挖矿 国王挖矿和01背包问题很像,都是两个维度的问题分析取最大值。 这种问题都是找到最优子结构,写出状态转移方程 基本就解出来了 例如10个人挖5个矿的价值 = Max(10个人去挖4个矿的价值,挖第5个矿的价值+10个人扣掉第5个矿的人去挖前4个矿的价值) 动态规划将问题规模逐渐变小,利用数组对之前的运算进行存储避免因为递归而产生的重复计算。 解题步骤: 1.减小问题规模 2.找出...原创 2019-01-01 11:38:47 · 187 阅读 · 0 评论