回溯法 回溯法的思想是:能进则进,进不了换,换不了退。 隐约束指对能否得到问题的可行解和最优解做出的约束。隐约束包括约束函数和限界函数。 关键步骤是: 1. 定义解空间; 2. 确定解空间的组织结构(子集树、排列数、m叉树等); 3. 搜索…
标签:算法
解析动态规划问题(3)
用动态分析解决0-1背包问题 有n个物品,每个物品的重量为w[i],价值为v[i],购物车容量为W。选若干个物品放入购物车,在不超过容量的前提下使获得的价值最大。 问题分析 (1)分析最优解的结构特征 (2)建立具有最优值的递归式 可以对每…
解析动态规划问题(2)
最优三角剖分 与矩阵连乘的不同点 不同点就在于递归公式的不同,最优三角剖分的递归公式如下: 当i=j的时候,m[i][j]=0; 当i<j的时候,m[i][j]=min{m[i][k]+m[k+1][j]+w(v(i-1)vkvj)}…
解析动态规划问题(1)
关于最长公共子序列(LCS) 最长公共子序列和最长公共子串是有区别的,之前我一直把它们混淆。 最长公共子串举例:假设S1={A,D,C,B,E,X,Q},S2={H,P,D,C,B,E,M,L} 那么它们的最长公共子串就是{D,C,B,E}…
《剑指Offer》题目解析(2)
题目1 滑动窗口的最大值 题目描述 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}…
算法学习(1):贪心算法
Dijkstra算法 待后续补充 哈夫曼编码 1.算法介绍 哈夫曼编码采取的贪心策略是每次从树的集合中取出没有双亲且权值最小的两个树为左右子树,构造一棵新树,新树根结点的权值为其左右孩子的结点权值之和,将新树插入到树的集合之中。 求解步骤如…
从头到尾彻底理解KMP[转载]
从头到尾彻底理解KMP 作者:July 原文地址:http://blog.csdn.net/v_july_v/article/details/7041827