时间原因,后面回忆下,把题目完成了
题目(大概):某俱乐部组建一支球队训练,队员10名,分成两队进行训练,每个球员都有能力值,两队的能力值和比值最小才能达到训练目的。
要求,输入10个能量值数字,以空格隔开,每个人能力值大于0小于10000.输出最小的比值
我的答题如下:
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine(); String[] all = input.split(" "); List<Integer> allList = new ArrayList<>(); for(String str:all){ allList.add(Integer.valueOf(str)); } Collections.sort(allList); List<Long> sumCll = new ArrayList<>(); for(int i=0;i<5;i++){ for(int k=1;k<=4;k++){ int temp = allList.get(i); List<Integer> sumAll = new ArrayList<>(); List<Integer> sumBll = new ArrayList<>(); List<Integer> tempList = new ArrayList<>(allList); tempList.remove(0); for(int j=k;j<k+4;j++){ try{ if(i+j>9){ break; } temp+=allList.get(i+j); tempList.remove(k-1); }catch (Exception e){ System.out.println(sumCll.get(0)); } } sumAll.add(temp); sumBll=tempList; long A=sumAll.stream().reduce(Integer::sum).orElse(0); long B=sumBll.stream().reduce(Integer::sum).orElse(0); if(A>B){ sumCll.add(A-B); }else{ sumCll.add(B-A); } } } Collections.sort(sumCll); System.out.println(sumCll.get(0)); } }
全部评论
(1) 回帖