摘要: 题目:有数组penny,penny中所有的值都为正数且不重复。每个值代表一种面值的货币,每种面值的货币可以使用任意张,再给定一个整数aim(小于等于1000)代表要找的钱数,求换钱有多少种方法。给定数组penny及它的大小(小于等于50),同时给定一个整数aim,请返回有多少种方法可以凑成aim。 阅读全文
posted @ 2017-04-19 22:04 雪浪snowWave 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目:对于两个字符串A和B,我们需要进行插入、删除和修改操作将A串变为B串,定义c0,c1,c2分别为三种操作的代价,请设计一个高效算法,求出将A串变为B串所需要的最少代价。给定两个字符串A和B,及它们的长度和三种操作代价,请返回将A串变为B串所需要的最小代价。保证两串长度均小于等于300,且三种代 阅读全文
posted @ 2017-04-19 21:32 雪浪snowWave 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题目:一个背包有一定的承重cap,有N件物品,每件都有自己的价值,记录在数组v中,也都有自己的重量,记录在数组w中,每件物品只能选择要装入背包还是不装入背包,要求在不超过背包承重的前提下,选出物品的总价值最大。给定物品的重量w价值v及物品数n和承重cap。请返回最大总价值。 思路:对于第i 件商品, 阅读全文
posted @ 2017-04-19 20:54 雪浪snowWave 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 题目:给定两个字符串A和B,返回两个字符串的最长公共子序列的长度。例如,A="1A2C3D4B56”,B="B1D23CA45B6A”,”123456"或者"12C4B6"都是最长公共子序列。给定两个字符串A和B,同时给定两个串的长度n和m,请返回最长公共子序列的长度。保证两串长度均小于等于300。 阅读全文
posted @ 2017-04-19 19:02 雪浪snowWave 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目:这是一个经典的LIS(即最长上升子序列)问题,请设计一个尽量优的解法求出序列的最长上升子序列的长度。给定一个序列A及它的长度n(长度小于等于500),请返回LIS的长度。 思路:经典dp,维护一个一维数组dp[],里面每个值代表必须以这个索引对应的序列值结尾的最长子序列,然后在dp[]里找出最 阅读全文
posted @ 2017-04-19 18:32 雪浪snowWave 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 题目:有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。给定一个矩阵map及它的行数n和列数m,请返回最小路径和。保证行列数均小于等于100. 思路:典型dp,比较简单,用有一个二 阅读全文
posted @ 2017-04-19 13:12 雪浪snowWave 阅读(256) 评论(0) 推荐(0) 编辑