解题思路: 用数组链表进行排序和增加、删除元素
注意事项: 注意删除最小两个元素是执行两次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 人评分
不知道哪里错了浏览:1141 |
C语言程序设计教程(第三版)课后习题7.2 (Java代码)浏览:681 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:1053 |
C语言程序设计教程(第三版)课后习题8.4 (Java代码)浏览:729 |
简单编码 (C++代码)浏览:675 |
九宫重排 (C++代码)浏览:1330 |
【计算两点间的距离】 (C语言代码)浏览:883 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:591 |
C语言考试练习题_一元二次方程 (C语言代码)浏览:576 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:859 |