Swap Nodes in Pairs LeetCode题解
摘要:做完这个题目,感觉LeetCode的题目出的真好。。。 这种题,如果让我在面试时候纸上写代码,肯定会挂的。 我昨天晚上看的题目,昨天脑子是懵的,放下了。今天早上来做。 一开始做,提交,果然错了。写的代码如下 这是潜意识里的错误。认为p是指向它的节点,那么p本身就是它前面的节点。这个太容易错了。。。
阅读全文
posted @
2017-11-29 09:30
newbird2017
阅读(148)
推荐(0)
背包问题后续3-找硬币问题
摘要:问题描述: 使用一个货币系统{1,2,5,10,...}产生18 单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1,3x5+2+1,等等其它。 写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。保证总数将会适合long long (C/C++) 和Int64 (Fre
阅读全文
posted @
2017-11-23 11:57
newbird2017
阅读(159)
推荐(0)
背包问题后续2
摘要:问题描述: 给出N种物品,每个物品无限件可选,对应的体积为w[i],这些物品可以使多大的背包完全装满? V <= 1000 直接在上一篇的基础上修改: 第i次循环后,dp[j]表示容量为j的背包可以被前i种物品装满。 递推关系: dp[j] == true => dp[j + w[i] ]= tru
阅读全文
posted @
2017-11-22 17:31
newbird2017
阅读(125)
推荐(0)
背包问题后续
摘要:问题描述: 给出N个物品,每个物品的体积为w[i],这些物品可以使多大的背包完全装满? 分析: 用dp[v]表示容量为i的背包可以被装满。 0 <= v <= sum(w[i]) 在循环开始前,初始化dp[0] = true,dp[i] = false (i>0)。 第一次循环,表示只有一件物品可选
阅读全文
posted @
2017-11-22 17:22
newbird2017
阅读(241)
推荐(0)
完全背包问题的理解
摘要:问题描述: 有N种物品,每种物品有无限量可选。每种物品对应的重量和价值分别为w[i]和p[i]。用容量为V的背包,任意选取。怎样使总价值最大。 一、笨方法,也是最容易理解的方式: 考虑dp[i][V]表示剩余容量为V,可选物品种类为i时的最优解。 那么第i件的选择方式有两种: 1、不选:dp[ i
阅读全文
posted @
2017-11-22 17:00
newbird2017
阅读(804)
推荐(0)
01背包问题(二)恰好装满的情形
摘要:恰好装满,表示空间V完全被占用。 之前的题目是说,在不超过空间V的情况下,使价值最大化。 现在考虑动态规划的初始值问题。 在前一个问题中,dp[i][v]初始化设置为0. 因为在初始状态,背包中没有任何物品。不论背包的容量多大,里面的价值只是0.这个状态是合法的。因为背包并没有超出容量。 现在,背包
阅读全文
posted @
2017-11-20 19:40
newbird2017
阅读(6023)
推荐(2)
01背包问题及空间优化
摘要:一、题目描述: 有n件物品,每件物品占用的空间为w[i], 价值为p[i]。 有容量为 V 的背包。求在容量允许的范围下,背包装入物品的最大价值。 用dp[i][v] 表示 用剩余容量为v的背包,来装前i件物品,可以达到的最大价值。 那么 dp[i][0] = 0; 在当前为i,v的情况下,考察第i
阅读全文
posted @
2017-11-20 19:11
newbird2017
阅读(3892)
推荐(1)