首页 > 8.22 美团笔试 第五题
头像
金村美玖
编辑于 2020-08-22 18:34
+ 关注

8.22 美团笔试 第五题

老哥们看看错在哪里了,只过了63%(代码写的丑请见谅)

import java.util.Scanner;

public class Main {
    public static double res = Double.MIN_VALUE;
    public static String str = "";
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int x = scanner.nextInt();
        int y = scanner.nextInt();

        int n = x + y;
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = scanner.nextInt();
        }

        boolean[] AB = new boolean[n];
        dfs(arr, AB, x, y, 0, 0);
        System.out.println(str);
    }

    public static void dfs(int[] arr, boolean[] AB, int x, int y, int a, int b) {
        if (a + b == x + y) {
            double avg1 = 0, avg2 = 0;
            for (int i = 0; i < arr.length; i++) {
                if (AB[i]) avg1 += arr[i];
                else avg2 += arr[i];
            }

            double d1 = avg1 / x;
            double d2 = avg2 / y;
            if (d1 + d2 > res) {
                res = d1 + d2;
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < AB.length; i++) {
                    if (AB[i]) sb.append('A');
                    else sb.append('B');
                }
                str = sb.toString();
            }
            return;
        }

        if (a < x) {
            AB[a + b] = true;
            dfs(arr, AB, x, y, a + 1, b);
            AB[a + b] = false;
        }

        if (b < y) {
            dfs(arr, AB, x, y, a, b + 1);
        }
    }
}


全部评论

(1) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐