解题思路: 用数组链表进行排序和增加、删除元素
注意事项: 注意删除最小两个元素是执行两次arr.get(0),因为每删除一个元素,数组链表的结构就发生变化
参考代码:
import java.util.ArrayList; import java.util.Collections; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n =in.nextInt(),m=in.nextInt(); ArrayList<Integer> arr = new ArrayList<Integer>(); for(int i=0;i<n;i++) arr.add(in.nextInt()); Collections.sort(arr); //排序升序 for(int k=1;k<=m;k++) { arr.add(arr.get(0)+arr.get(1)); //选择最小的两条进行体重的复合 arr.remove(0);arr.remove(0);//删除最小的两个 Collections.sort(arr); } System.out.println(arr.get(0)); in.close(); } }
0.0分
3 人评分
C二级辅导-进制转换 (C语言代码)浏览:658 |
A+B for Input-Output Practice (VII) (C++代码)浏览:643 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:949 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1015 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:331 |
永远的丰碑 (C语言代码)浏览:608 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:692 |
生日日数 (C语言代码)浏览:1575 |
10进制 VS 2进制浏览:1156 |
DNA (C++代码)(直接上代码)浏览:869 |