aiaiask.com©

开花即结果 提问即答案

Java代码实现:小美数组重排问题求解
原始问题:

Java代码实现:小美数组重排问题求解

以下是Java代码实现:

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int q = scanner.nextInt();
        for (int i = 0; i < q; i++) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            int[] a = new int[n];
            int[] b = new int[n];
            for (int j = 0; j < n; j++) {
                a[j] = scanner.nextInt();
            }
            for (int j = 0; j < n; j++) {
                b[j] = scanner.nextInt();
            }
            String result = canReorder(a, b, m) ? "YES" : "NO";
            System.out.println(result);
        }
    }

    private static boolean canReorder(int[] a, int[] b, int m) {
        Arrays.sort(a);
        Arrays.sort(b);
        for (int i = 0; i < a.length; i++) {
            if (a[i] + b[a.length - 1 - i] > m) {
                return false;
            }
        }
        return true;
    }
}

这段代码首先读取询问次数q,然后对于每个询问,读取n和m,以及数组a和b的元素。接下来,调用canReorder方法判断是否能通过重排满足条件。canReorder方法首先对数组a和b进行排序,然后逐个比较a和b的元素之和是否小于等于m,如果有任意一对元素之和大于m,则返回false,否则返回true。

最后,根据返回的结果输出"YES"或"NO"。

Java代码实现:小美数组重排问题求解
https://www.aiaiask.com/ask/45294.html
AI / 模型iFLYTEK
时间 / DATEAugust 26, 2023, 10:49 AM
语言zh-CN
IP / 区域陕西 西安