i*w
2 楼
长度为2n的无序数组, 怎么分成2个长度为n的子数组,使得2个子数组的和之差最小?
被要求用polynomial的time complexity。死活没想出来。
请大牛们帮忙看看,谢谢
被要求用polynomial的time complexity。死活没想出来。
请大牛们帮忙看看,谢谢
m*i
3 楼
@Chicago
b*g
4 楼
应该算卖家的吧
r*a
5 楼
不可能,这是个NPHard问题 http://en.wikipedia.org/wiki/Partition_problem
有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
一脸
【在 i******w 的大作中提到】
: 长度为2n的无序数组, 怎么分成2个长度为n的子数组,使得2个子数组的和之差最小?
: 被要求用polynomial的time complexity。死活没想出来。
: 请大牛们帮忙看看,谢谢
有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
一脸
【在 i******w 的大作中提到】
: 长度为2n的无序数组, 怎么分成2个长度为n的子数组,使得2个子数组的和之差最小?
: 被要求用polynomial的time complexity。死活没想出来。
: 请大牛们帮忙看看,谢谢
s*7
6 楼
wow, gorgeous !
h*t
7 楼
嗯,卖家送错了算卖家的吧
w*a
10 楼
patition问题是子集吧,这里是子数组
m*1
12 楼
比wiki上的还要难一点。因为需要分成等长的两个set。 所以还需要一个变量表示set
的长度。P[N/2][n][n/2] 三维dp?
的长度。P[N/2][n][n/2] 三维dp?
w*a
14 楼
好吧 他可能就是子集的意思,不然就只有一种情况了
m*k
16 楼
猜想:
sort first,
then s[0],s[n-1] go to S1,
s[1],s[n-2] go to S2,
s[2],s[n-3] go to S1,
...
when n is odd,
s[n-1] go to S1, s[n] go to S2
sort first,
then s[0],s[n-1] go to S1,
s[1],s[n-2] go to S2,
s[2],s[n-3] go to S1,
...
when n is odd,
s[n-1] go to S1, s[n] go to S2
a*m
18 楼
赞!
【在 r**a 的大作中提到】
: 不可能,这是个NPHard问题 http://en.wikipedia.org/wiki/Partition_problem
: 有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
: 一脸
【在 r**a 的大作中提到】
: 不可能,这是个NPHard问题 http://en.wikipedia.org/wiki/Partition_problem
: 有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
: 一脸
h*c
22 楼
假设平衡没有打破
再进来两个数,调整
可能近似
能不能用数学归纳法证明
或者反例
再进来两个数,调整
可能近似
能不能用数学归纳法证明
或者反例
h*c
24 楼
如果每次调整都是 log n,那在数学上就是一件很美的事情
h*c
26 楼
找距离最近的两个
再找下两个
再找下两个
i*e
28 楼
赞喷他一脸。
【在 r**a 的大作中提到】
: 不可能,这是个NPHard问题 http://en.wikipedia.org/wiki/Partition_problem
: 有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
: 一脸
【在 r**a 的大作中提到】
: 不可能,这是个NPHard问题 http://en.wikipedia.org/wiki/Partition_problem
: 有伪多项式的算法(复杂度和值的范围有关),如果面试官要纯多项式的算法,就喷他
: 一脸
h*c
30 楼
没太看懂polynomial 和big O 啥关系
x*9
32 楼
小数据用背包
大数据上集群吧就。。。(逗
==
顺便围观roba大神
大数据上集群吧就。。。(逗
==
顺便围观roba大神
a*2
36 楼
V^k(i,j) = 1 if there exists k elements in {a_1,a_2,...,a_i} summing up to j
v^k(i,j) = 0 otherwise,
i = k,...,2n
j = 1,2,...,sum^k
where sum^k is the maximum sum of k elements in arr
DP:
v^k(i,j) = max(v^k(i-1,j),v^(k-1)(i-1,j-a_i))
Results:
min abs( j - sum(arr)/2), j = 1,...,sum^n and v^n(2n,j) = 1
v^k(i,j) = 0 otherwise,
i = k,...,2n
j = 1,2,...,sum^k
where sum^k is the maximum sum of k elements in arr
DP:
v^k(i,j) = max(v^k(i-1,j),v^(k-1)(i-1,j-a_i))
Results:
min abs( j - sum(arr)/2), j = 1,...,sum^n and v^n(2n,j) = 1
s*d
37 楼
lz没诚意啊。。啥都没写。。pp也不知道真假。
w*a
40 楼
美女啊,鹊版可以排前20名
相关阅读