美文网首页丹青远楼阁周文佳语强化班
算法之动规:将树形结构瓦解

算法之动规:将树形结构瓦解

作者: 王跃坤txdy | 来源:发表于2019-03-18 17:29 被阅读11次

树形结构解斐波那契:

树形原理

动规解斐波那契:

动规原理

动态规划把原本需要递归的大量数据按照顺序记录下来,

需要使用的时候可以直接调用,

并不需要进行重复计算,

也可以说动规是递归的升华版,

动归相比于递归的优势在于大大降低了程序运行的时间,

在进行较大数据的计算时递归往往会超时,

这时候动归就是最好的选择。

递归源码:

public class Main {

public static void main(String args[]) {

int n = 5;

int[] bak = new int[n + 1];

for (int i = 0; i < n + 1; i++) {

bak[i] = -1;

}

System.out.println(f(n, bak));

}

public static int f(int n, int[] bak) {

if (n == 0) {

return 1;

}

if (n == 1) {

return 1;

}

if (bak[n] != -1) {

return bak[n];

}

int result = f(n - 1, bak) + f(n - 2, bak);

bak[n] = result;

return result;

}

}

动规源码:

public class Main {

public static void main(String args[]) {

int n = 5;

System.out.println(f(n));

}

public static int f(int n) {

if (n == 0) {

return 1;

}

if (n == 1) {

return 1;

}

int result = 0;

int r1 = 1;

int r2 = 1;

for (int i = 2; i <= n; i++) {

result = r1 + r2;

r1 = r2;

r2 = result;

}

return result;

}

}

相关文章

  • 算法之动规:将树形结构瓦解

    树形结构解斐波那契: 动规解斐波那契: 动态规划把原本需要递归的大量数据按照顺序记录下来, 需要使用的时候可以直接...

  • 树形动规

    顾名思义, 树形动态规划就是在“树”的数据结构上的动态规划. 在树上面做动态规划是很常见的, 因为树上的一些问题是...

  • 数据结构与算法

    参考链接:算法 数据结构与算法 iOS数据结构 和 算法 上 算法 1、数据结构: 集合结构: 线性结构: 树形结...

  • 动态规划

    动态规划一般可分为线性动规,区域动规,树形动规,背包动规四类。 举例:线性动规:拦截导弹,合唱队形,挖地雷,建学校...

  • 【恋上数据结构与算法一】(六)二叉树

    二叉树 线性结构 树形结构 二叉树 多叉树 生活中的树形结构 ◼ 使用树形结构可以大大提高效率◼ 树形结构是算法面...

  • 数据结构与算法 - 树形结构

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构 目录 ...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • reduce处理树形结构数据

    直接上代码 1.0:将树形结构处理为扁平数组 2.0:将扁平数组处理为树形结构

  • 大话数据结构摘录

    数据结构的不同维度 逻辑结构集合结构线性结构树形结构图形结构 物理结构顺序存储结构链式存储结构 算法的定义 算法是...

  • 数据挖掘-决策树算法

    决策树算法是一种比较简易的监督学习分类算法,既然叫做决策树,那么首先他是一个树形结构,简单写一下树形结构(数据结构...

网友评论

    本文标题:算法之动规:将树形结构瓦解

    本文链接:https://www.haomeiwen.com/subject/yqebmqtx.html