最大化控制资源成本 华为OD真题 200

 

import java.util.Scanner;
import java.util.*;
import java.util.stream.Collectors;public class Main { public static int max_machine;public static void main(String[] args) { //处理输入Scanner in=new Scanner(System.in); int taskNum = in.nextInt(); //构造输入数据结构ArrayList> outerArrayList = new ArrayList>();for (int i = 0; i < taskNum; i++) {int a = in.nextInt();int b = in.nextInt();int c = in.nextInt();ArrayList innerArraylist = new ArrayList();innerArraylist.add(a);innerArraylist.add(b);innerArraylist.add(c);outerArrayList.add(innerArraylist);//避免完全没有交集的特殊情况if (max_machine < c) {max_machine = c;}}//递归求交集while (outerArrayList.size() > 1) {outerArrayList = cal_public_range(outerArrayList);}System.out.println(max_machine);}public static ArrayList> cal_public_range(ArrayList> ranges) {//先排序 Comparator> myComparator = new Comparator>() {@Overridepublic int compare(ArrayList o1, ArrayList o2) {if (o1.get(0)!=o2.get(0)){return o1.get(0)-o2.get(0);}else {return o1.get(1)-o2.get(2); }}};Collections.sort(ranges, myComparator);//求交集ArrayList> public_range = new ArrayList> ();for (int i=0;i temp = new ArrayList();temp.add(left);temp.add(right);temp.add(ranges.get(i).get(2)+ ranges.get(j).get(2));public_range.add(temp);if (ranges.get(i).get(2)+ ranges.get(j).get(2) > max_machine) {max_machine = ranges.get(i).get(2)+ ranges.get(j).get(2);}}}}return public_range;}}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部