Redian新闻
>
排序使得两个数组的两两绝对值之和最小
avatar
排序使得两个数组的两两绝对值之和最小# JobHunting - 待字闺中
k*g
1
有两个大小相同的整数数组A,B
排序B使得sum(|A[i]-B[i]|)最小
怎么做?
avatar
k*g
2
靠,咋发现B怎么排得出来的sum都一样呢
avatar
T*g
3
这题的意思应该是按照A里面元素的顺序 对B进行排序
avatar
M*6
4
动态规划?二维的dp。
avatar
w*w
5
只要两个数组长度一样,那么都从小到大sort一遍,但是要记住原来两个数组的
entries是怎么对应的,比如sort后A组的第0个数是从原来第几个位置移动过来的,B组
的第0个数是从原来第几个数移动过来的。
比如A组第0个数是从原本第5个entry移动过来的,B组排序后的第0个数是从原本第3个
entry移动过来的。那么你需要做的事,就是把B组原本第3个entry的数移动到第5个。
以此类推。
如果不对,那就见笑了
avatar
z*n
6
sort一遍一一对应一下应该就行了,自己脑子里简单证明了一下,应该能保证sum最小
。看大牛们怎么说?
avatar
s*d
7
恩 没错。

【在 z*********n 的大作中提到】
: sort一遍一一对应一下应该就行了,自己脑子里简单证明了一下,应该能保证sum最小
: 。看大牛们怎么说?

avatar
l*u
8
恩 用一个hashtable记住排前排后的对应关系,然后还原
不过空间复杂度是O(N)
不知道有没有空间复杂度O(1)的

【在 w*****w 的大作中提到】
: 只要两个数组长度一样,那么都从小到大sort一遍,但是要记住原来两个数组的
: entries是怎么对应的,比如sort后A组的第0个数是从原来第几个位置移动过来的,B组
: 的第0个数是从原来第几个数移动过来的。
: 比如A组第0个数是从原本第5个entry移动过来的,B组排序后的第0个数是从原本第3个
: entry移动过来的。那么你需要做的事,就是把B组原本第3个entry的数移动到第5个。
: 以此类推。
: 如果不对,那就见笑了

avatar
k*g
9
我也觉得是,但不知道应该怎么证明

【在 z*********n 的大作中提到】
: sort一遍一一对应一下应该就行了,自己脑子里简单证明了一下,应该能保证sum最小
: 。看大牛们怎么说?

avatar
r*n
10
只需要证明一种情况就行:
ACThen in all cases |A-C| + |B-D| <= |A-D| + |B-C|
ACDB
ACBD
ABCD
CDAB
CADB
CABD
走一遍就明确了
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。