题解 | #牛牛的数组匹配#

牛牛的数组匹配

https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875

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

// 注意类名必须为 Main, 不要有任何 package xxx 信息


// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        int aLength = in.nextInt();
        int bLength = in.nextInt();
        int[] a = new int[aLength];
        int[] b = new int[bLength];
        int sumA = 0;
        for (int i = 0; i < aLength; i++) {
            sumA += in.nextInt();
        }

        for (int i = 0; i < bLength; i++) {
            b[i] = in.nextInt();
        }
//        System.out.println(Arrays.toString(b));
//        System.out.println(sumA);
        int beginAns = 0, endAns = 0;
        int close = sumA;

        for (int begin = 0; begin < bLength; begin++) {
            for (int end = 0; end < bLength; end++) {
                int sumTemp = getSubSum(b, begin, end);
//                System.out.println("=================");
//                System.out.println(sumTemp);
                int span = Math.abs(sumA - sumTemp);
                if (close > span) {
                    close = span;
                    beginAns = begin;
                    endAns = end;
                }
            }

        }
        for (int i = beginAns; i <= endAns; i++) {
            System.out.print(b[i] + " ");
        }

    }

    public static int getSubSum(int[] arr, int begin, int end) {
        int sum = 0;
        for (int i = begin; i <= end; i++) {
            sum += arr[i];
        }
        return sum;
    }
}

全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务