一个数组,分成俩个数组,数组值之和的差最小。

扶&苏 2019-02-22 09:54:42


谁能帮我解决一下,谢谢大神们。
...全文
717 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小菜鸟肥 2019-02-23
  • 打赏
  • 举报
回复
思路就是:先给数组排序,然后从大的开始给两个子数组分配,把当前数给两个数组中和比较小的那个数组 int[] aa={11,7,2,5,9,21}; int[] bb = new int[0]; int[] cc = new int[0]; int c = 0; int b = 0; Arrays.sort(aa); for(int i = 0;i<aa.length ; i++){ if(b >= c){ c = c+aa[aa.length -1-i]; cc =java.util.Arrays.copyOf(cc,cc.length+1); cc[cc.length-1] = aa[aa.length -1-i]; }else { b = b+aa[aa.length -1-i]; bb =java.util.Arrays.copyOf(bb,bb.length+1); bb[bb.length-1] = aa[aa.length -1-i]; } } for (int i : bb){ System.out.print("BB["+i+"]="+i+","); }

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧