题目
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
...
分类:
其他好文 时间:
2014-06-19 11:46:47
阅读次数:
277
题目:交差字符串。给3个字符串s1, s2, s3,判断s3是不是由s1和s2组成的交叉字符串。
设s1长度为m, s2长度为n,判断 s3[0...m+n-1] 是不是由s1[0...m-1], s2[0...n-1]组成的交叉字符串,假设s1[m-1] == s3[m+n-1],则只需判断s3[0...m+n-2]是不是由s1[0...m-2], s2[0...n-1]组成的交叉字符串...,依次这样判断下去。从这可以总结,这个问题可以划分为比它小的问题,这里使用动态规划应该比较合适。
dp[i][j]...
分类:
其他好文 时间:
2014-06-16 12:38:58
阅读次数:
166
题目:有n种物品,每种物品都有无限件可用。第i种物品的体积是vi,重量是wi。选一些物品装到一个容量为C的背包中,使得背包内物品在总体积不超过C的前提下重量尽量大。
分析,完全背包问题,相对于上上篇文章的硬币问题,只是由DAG上的无权图变成了这里的DAG上的带权图!
输出最后满足体积不超过背包容量的条件下,背包中的最大重量。
代码:
#include
#include
using...
分类:
其他好文 时间:
2014-06-16 11:59:00
阅读次数:
221
最长公共子序列是一个很经典的动态规划问题,最近正在学习动态规划,所以拿来这里再整理一下。这个问题在《算法导论》中作为讲动态规划算法的例题出现。动态规划,众所周知,第一步就是找子问题,也就是把一个大的问题分解成子问题。这里我们设两个字符串A、B,A = "a0, a1, a2, ..., am-1",...
分类:
其他好文 时间:
2014-06-15 20:54:15
阅读次数:
229
给一堆盒子,知道每个盒子的三围(长宽高),盒子正面朝你,不能旋转摆放,按照大的放在小的下面的原则堆起来,必须是 strictly larger,同样大小的盒子不行,问怎么样堆到最大的高度?思路:动态规划最优解一定是 max( {box_1 be the bottom}, {box_2 be the ...
分类:
其他好文 时间:
2014-06-14 15:46:55
阅读次数:
369
Floyd也是采用动态规划的方案来解决在一个有向图G=(V,E)上每对顶点间的最短路径问题。运行时间为Θ(V3)。算法分析: 用邻接矩阵map[][]存储有向图,用dist[i][j]表示i到j的最短路径。设G的顶点为V={1,2,3...n},对于任意一对顶点i,j属于V,假设i到j有路径且...
分类:
其他好文 时间:
2014-06-14 11:37:34
阅读次数:
369
题目
A message containing letters from A-Z is being encoded to numbers using the following mapping:
原题链接(点我)
解题思路及代码;
解码方法数量问题。英文26个字母对应1到26,给一串数字,问翻译为字母有多少种方法?
这个题第一思路是想到使用组合排列的方法,穷举所有的可能。很好,写出如下代码...
但是提交后出来的结果是超时。
再想想,使用动态规划的方法来做。
对于串s[0...i]的解码数量应该和s[0.....
分类:
其他好文 时间:
2014-06-13 20:44:04
阅读次数:
292
动态规划经常被用来作为这个问题的解决手段之一。整数 Levenshtein距离(字符串
str1[1..m], 字符串 str2[1..n])//声明变量, d[i ,
j]用于记录str1[1...i]与str2[1..j]的Levenshtein距离int d[0..m, 0..n]//初始化f...
分类:
其他好文 时间:
2014-06-12 07:06:30
阅读次数:
251