python数组分成两个_python把⼀个随机长度整数组分成两组
的差值最⼩
# array2group
注:由于部分代码运⾏使⽤到了python3,故需要你的环境中使⽤ 如下命令来运⾏⽂件:python3 divides.py
这是⼀道考题:据说是各⼤科技公司(google,amazon,facebook)的⾯试以及⽤来培训⾼级程序员的题⽬
### 原题⽬如下:
### 原题意思:
给你⼀个长度不超过100列表的正整数,且每个正整数的值都不会⼤于500.请编写程序,将这些正整数分成两个数组,使得这两个数组所有元素的总和的差值为最⼩,以下是⼀些例⼦:
eg1:
input: 1 1 1 2 2
output: (1 1 1)(2 2) => 1
(difference between 3 and 4)
eg2:
input: 1 2 4 6
output: (1 6)(2 4) => 1
(difference between 7 and 6)
divides.py 经过测试,⽬前暂未出现运⾏失败或者错误的情况,如果有想测试的,可以亲⾃在代码⾥修改:
### 步骤如下:
注释第七⾏,并且在17⾏组输⼊你想要测试的数组,然后运⾏即可。
### 解题思路:
1、排序 从⼤到⼩;
2、长度=n的排序后列表的前m位的和⼩于(n-m)位的和;设前m位的和=group1,后⾯n-m为的和为group2;
(原因:⼤值拿出来作和,会使得数组的和的值范围变得太⼤,没有意义)
3、求group1-group2 差值的中间值。 差值设为:th1
4、group2只要再取出某y位的值的和接近于th1,然后给group1就可以得出最⼩的两个数组。
### 运⾏⽰例如下图:
### 源码请访问:
如果期望详细内容解析,可以留⾔。前提,先好好看⼀下代码吧。python获取数组长度
本⽂由【waitig】发表在等英博客 本⽂固定链接:python 把⼀个随机长度整数组分成两组的差值最⼩ 欢迎关注本站官⽅,每⽇都有⼲货分享!
点赞 (0)赏分享 (0)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论