首页 > 机试未能完成的一道题目记录
头像
牛客809639712号
编辑于 2021-06-25 11:40
+ 关注

机试未能完成的一道题目记录

时间原因,后面回忆下,把题目完成了
题目(大概):某俱乐部组建一支球队训练,队员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) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐