
算法
颖豆豆啦
这个作者很懒,什么都没留下…
展开
-
动态规划解决01背包问题
0-1背包(动态规划) 问题描述:给定n种物品和一背包。物品i的重量是wi,其价值是vi,背包的容量为c。 问应如何选择装入背包的物品,使得装入背包中物品的总价值最大?问题分析:对于一种问题,要么装入背包,要么不装。所以对于一种物品的装入状态可以取0和1。eg:物品个数n=5,物品重量w[n]={0,2,2,6,5,4},物品价值V[n] = {0,6,3,5,4,6},总重量c=10. (第0原创 2018-05-05 22:26:36 · 255 阅读 · 0 评论 -
最大子矩阵和问题
从第一行到最后一行,将每一行的同列相加起来,可以得到一个一维数组,可以用最大子段和求这个一维数组中的最大子段,也就是最大子矩阵。 eg:矩阵为4 -2 9 -1 3 8 -6 7 6 09 -5 4-2 9 4 -2 9 4 -2 9 4 -2 9 -1 3 8 -1 3 8 -1...原创 2018-05-05 22:39:20 · 1140 阅读 · 0 评论 -
青蛙跳台阶问题
题目:一只青蛙一次可以跳上一级台阶,也可以跳上2级,求该青蛙跳上一个n级的台阶总共有多少种跳法。 思路:首先考虑n等于0、1、2时的特殊情况,f(0) = 0 f(1) = 1 f(2) = 2 其次,当n=3时,青蛙的第一跳有两种情况:跳1级台阶或者跳两级台阶 假如跳一级,那么 剩下的两级台阶就是f(2);假如跳两级,那么剩下的一级台阶...原创 2018-08-08 13:16:14 · 149 阅读 · 0 评论 -
最长公共前缀
问题描述: 一个数组中有很多字符串,找这所有字符串的公共前缀。如 “abc”, “abcdef”, “abcd”, 则返回”abc”。 解题思路: 首先最长公共前缀肯定小于或者等于最短字符串,设第一个字符串为公共字符串,公共字符串长度为第一个字符串的长度,遍历其他公共字符串,如果其他公共字符串比第一个字符串短,则公共字符串取较短的长度,如果其他字符串的字符不等于第一个字符串的字符,则退出比...原创 2018-08-08 13:17:12 · 674 阅读 · 0 评论 -
最少硬币个数
问题描述:假设有 1 元,3 元,5 元的硬币若干(无限),现在需要凑出 11 元,问如何组合才能使硬币的数量最少? 解题思路: 1、动态规划 假设总价值为i,先假设一个函数d(i)来表示需要凑出i的总价值需要的最少硬币数量。 当i=0时,我们不需要拼凑硬币,因为总价值为0 当i=1时,因为有1元我们需要1个1元,所以d(1)=1。 当i=2时,因为没有2元,所以我们需要2个1元,d(...原创 2018-08-08 13:18:29 · 2655 阅读 · 0 评论