由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Integer Partition problem
相关主题
请教两个算法题有好的merge有序数组算法么
lintcode 上的 Count of Smaller Number before itselffind duplicate integers in a big file
问一道面试题Another DP Problem: Balanced Partition
问一道算法题partition array problem
设计一个算法,判断一个integer n是不是可以表示成k(k>=2)个连续正整数的和这个BST题目为何错了?
请教leetcode上的count and say打击啊,程序没写出来
请教一道算法题一道巨常见的题
贴两道面试题leetcode - 130的答案
相关话题的讨论汇总
话题: number话题: dp话题: partition话题: int
进入JobHunting版参与讨论
1 (共1页)
C***U
发帖数: 2406
1
假设我有一个正整数n,我要把他写成一些正整数的和。是组合问题,也就是说数字的
顺序不考虑。
有什么好的办法没有
我写了一个recrusive的,请大牛们指教一下
int count = 0;
//构造以max为最大数的 number的partition
void partitionWithMax(int number, int max) {
if(!number) {
count++;
return;
}
else {
int newMax = number > max ? max : number;
for(int i = newMax; i > 0; i--) {
partitionWithMax(number - i, i);
}
}
}
//让max从1到number都走一边
void partition(int number) {
for(int i = number; i > 0; i--) {
partitionWithMax(number - i, i);
}
}
C***U
发帖数: 2406
2
没人搭理我。。。

【在 C***U 的大作中提到】
: 假设我有一个正整数n,我要把他写成一些正整数的和。是组合问题,也就是说数字的
: 顺序不考虑。
: 有什么好的办法没有
: 我写了一个recrusive的,请大牛们指教一下
: int count = 0;
: //构造以max为最大数的 number的partition
: void partitionWithMax(int number, int max) {
: if(!number) {
: count++;
: return;

Z*****Z
发帖数: 723
3
没看懂题。。。

【在 C***U 的大作中提到】
: 没人搭理我。。。
C***U
发帖数: 2406
4
例子
4的partition是如下几个
4
3+1
2+2
2+1+1
1+1+1+1

【在 Z*****Z 的大作中提到】
: 没看懂题。。。
p*****2
发帖数: 21240
5
如果只是求count不是用dp就可以了吗?
C***U
发帖数: 2406
6
我这里倒是还打出来了
如果只是count 如何dp

【在 p*****2 的大作中提到】
: 如果只是求count不是用dp就可以了吗?
p*****2
发帖数: 21240
7

每看到你的程序打印呀

【在 C***U 的大作中提到】
: 我这里倒是还打出来了
: 如果只是count 如何dp

d****o
发帖数: 1055
8
你这题就是用硬币找零是一道题。
give you 4 coins , 1,5,10, 25 cents, to make change to N cents。
去看那道题就可以了。

【在 C***U 的大作中提到】
: 假设我有一个正整数n,我要把他写成一些正整数的和。是组合问题,也就是说数字的
: 顺序不考虑。
: 有什么好的办法没有
: 我写了一个recrusive的,请大牛们指教一下
: int count = 0;
: //构造以max为最大数的 number的partition
: void partitionWithMax(int number, int max) {
: if(!number) {
: count++;
: return;

p*****2
发帖数: 21240
9

def count(n):
dp=[[0]*(n+1) for i in xrange(n+1)]
dp[0][0]=1

for i in xrange(1,n+1):
for j in xrange(n+1):
dp[i][j]=dp[i-1][j]
if j>=i:
dp[i][j]+=dp[i][j-i]
return dp[n][n]

【在 C***U 的大作中提到】
: 我这里倒是还打出来了
: 如果只是count 如何dp

Z*****Z
发帖数: 723
10
拜二爷

【在 p*****2 的大作中提到】
:
: def count(n):
: dp=[[0]*(n+1) for i in xrange(n+1)]
: dp[0][0]=1
:
: for i in xrange(1,n+1):
: for j in xrange(n+1):
: dp[i][j]=dp[i-1][j]
: if j>=i:
: dp[i][j]+=dp[i][j-i]

C***U
发帖数: 2406
11

我电脑上是打印的。。。在这里 我改掉了。。
就是把return前面 吧数组打印出来就可以了

【在 p*****2 的大作中提到】
:
: def count(n):
: dp=[[0]*(n+1) for i in xrange(n+1)]
: dp[0][0]=1
:
: for i in xrange(1,n+1):
: for j in xrange(n+1):
: dp[i][j]=dp[i-1][j]
: if j>=i:
: dp[i][j]+=dp[i][j-i]

1 (共1页)
进入JobHunting版参与讨论
相关主题
leetcode - 130的答案设计一个算法,判断一个integer n是不是可以表示成k(k>=2)个连续正整数的和
常见编程面试题答案的2种格式,哪种最好?请教leetcode上的count and say
3-way Partition 算法不容易请教一道算法题
菜鸟向大家请教个面试题贴两道面试题
请教两个算法题有好的merge有序数组算法么
lintcode 上的 Count of Smaller Number before itselffind duplicate integers in a big file
问一道面试题Another DP Problem: Balanced Partition
问一道算法题partition array problem
相关话题的讨论汇总
话题: number话题: dp话题: partition话题: int