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

牛牛的数组匹配

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;
    }
}

全部评论

相关推荐

03-11 18:00
辽宁大学 安卓
这怎么还花钱买上了.....
不愿吃饼的变色龙很感性:没事,我不是目标院校,练花钱的机会都没有
点赞 评论 收藏
分享
01-14 19:01
吉首大学 Java
黑皮白袜臭脚体育生:加个项目吧,一般需要两个项目一业务一轮子呢,简历统一按使用了什么技术实现了什么功能解决了什么问题或提升了什么性能指标来写
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务