动态规划
文章平均质量分 63
骑码找马
学习编程
展开
-
动态规划问题一:背包问题
学习自:Christal_R 有一个背包,能盛放的物品总重量为capacity,设有number件物品,其重量分别为w1,w2,…,wn,希看从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。 寻找递推关系式,面对当前商品有两种可能性: 第一,包的容量比该商品体积小,装不下,此时的价值与前i-1个的价值是一样的,即V(i,j)=V(i-1,j); 第二,还有...转载 2018-11-29 21:40:29 · 265 阅读 · 0 评论 -
动态规划问题二:最长重复/公共子串长度求解
问题一:求串s1,s2最长公共子串长度 问题二:求串s的最长重复子串 问题三:求串s1,s2最长公共子序列长度 注:两个字符串的最长公共子序列与最长公共子串区别是前者字符之间不一定是连在一块的,而公共子串必须要连在一块。比如字符串1:ABCAB;字符串2:ADEBCFA,则这两个字符串的最长公共子序列为ABCA,最长公共子串是:BC 以上三个问题都可以用三层循环求出,但 时间复杂度为O(n3),如...原创 2018-12-02 17:01:19 · 1948 阅读 · 2 评论 -
将二叉树表达式按中缀表达式输出,并加上相应的括号。
转自:倾斜的正弦波 二叉树的中序遍历序列与原算术表达式基本相同,差别仅在于二叉树表示中消除了括号。将中序序列加上括号就恢复原貌。当根结点运算符优先级高于左子树或右子树根结点运算符时,相应左或右子树前就需要加括号。 纯C代码: #include <stdlib.h> #include <stdio.h> typedef struct Node{ char da...转载 2018-12-12 12:17:49 · 7892 阅读 · 5 评论