由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 求高手帮忙,一个算法问题
相关主题
Pairwise Sum 算法follow up请教道算法题
请教leetcode Combination Sum II的code,谢谢。请教问题:gps和google maps背后的算法
Combination Sum II哪里做错了关于DP的问题
关于结果除掉重复的问题请教请教一道题的算法!! (转载)
Target coinsnearest neighbours search算法
Linkedin 第一轮店面给个算法题
说说某著名软件公司的onsite面试一个貌似指数级的算法问题求更简单的算法
一道算法题求问大牛一道算法题
相关话题的讨论汇总
话题: dp话题: int话题: 算法话题: sum话题: 数字
进入JobHunting版参与讨论
1 (共1页)
y*****f
发帖数: 1073
1
一个朋友问俺的,工作上的问题,一时想不出啥好算法,求高手指点迷津。
给定一个总数,还有几十个数字。
从这几十个数字里,找出这个总数是由哪些数字累加出来的?
有啥效率比较高的算法么?
s******y
发帖数: 936
2
leetcode 的combination sum吧
g**********y
发帖数: 14569
3
总数固定,就可以用DP解, dp[]记录可以到达的前一点(parent). 大致是:
int[] dp = new int[N+1];
init(dp); // set all to -1
dp[0] = 0;
for(int i : a) {
for (int j=N; j>=i; j--) {
if (dp[j-i] >= 0) dp[j] = j-i;
}
}
if (dp[N] > 0) {
backtrace_solution();
} else {
// no solution
}

【在 y*****f 的大作中提到】
: 一个朋友问俺的,工作上的问题,一时想不出啥好算法,求高手指点迷津。
: 给定一个总数,还有几十个数字。
: 从这几十个数字里,找出这个总数是由哪些数字累加出来的?
: 有啥效率比较高的算法么?

y*****f
发帖数: 1073
4
嗯,找到了,确实是这个,多谢。

【在 s******y 的大作中提到】
: leetcode 的combination sum吧
y*****f
发帖数: 1073
5
还没仔细读代码,先谢谢了。

【在 g**********y 的大作中提到】
: 总数固定,就可以用DP解, dp[]记录可以到达的前一点(parent). 大致是:
: int[] dp = new int[N+1];
: init(dp); // set all to -1
: dp[0] = 0;
: for(int i : a) {
: for (int j=N; j>=i; j--) {
: if (dp[j-i] >= 0) dp[j] = j-i;
: }
: }
: if (dp[N] > 0) {

g**********y
发帖数: 14569
6
代码修改了,应该逆向算。

【在 y*****f 的大作中提到】
: 还没仔细读代码,先谢谢了。
g*********e
发帖数: 14401
7
subset sum np complete

【在 y*****f 的大作中提到】
: 一个朋友问俺的,工作上的问题,一时想不出啥好算法,求高手指点迷津。
: 给定一个总数,还有几十个数字。
: 从这几十个数字里,找出这个总数是由哪些数字累加出来的?
: 有啥效率比较高的算法么?

f****8
发帖数: 33
8
如果是COMBINATION SUM(允许数字重复)的话,那就是COIN问题的翻版啦,非常典型
的DP问题。
但如果换成其他问题,例如数字里面有正数有负数,N SUM问题的话,就是NP了
1 (共1页)
进入JobHunting版参与讨论
相关主题
求问大牛一道算法题Target coins
Nearest Neighbor 算法题Linkedin 第一轮店面
请教个算法题说说某著名软件公司的onsite面试
最近流行的神经病猫游戏的算法一道算法题
Pairwise Sum 算法follow up请教道算法题
请教leetcode Combination Sum II的code,谢谢。请教问题:gps和google maps背后的算法
Combination Sum II哪里做错了关于DP的问题
关于结果除掉重复的问题请教请教一道题的算法!! (转载)
相关话题的讨论汇总
话题: dp话题: int话题: 算法话题: sum话题: 数字