美文网首页
两个数组的元素之和最大的前k项

两个数组的元素之和最大的前k项

作者: 放开那个BUG | 来源:发表于2018-09-12 21:56 被阅读8次

题目描述:



解决思路:

import java.util.*;

public class Main {
    //2,4,2,7,7-3,2,5,6,1,9:6
    //16 16 13 13 13 11

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String line = scanner.nextLine();
        String[] tem = line.split("-");
        String[] array1 = tem[0].split(",");
        String[] temp = tem[1].split(":");
        String[] array2 = temp[0].split(",");
        int K = Integer.parseInt(temp[1]);
        Arrays.sort(array1, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);
            }
        });
        Arrays.sort(array2, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o2.compareTo(o1);
            }
        });
        int[] arr_1 = new int[array1.length];
        int[] arr_2 = new int[array2.length];
        for(int i = 0; i < array1.length; i++){
            arr_1[i] = Integer.parseInt(array1[i]);
        }
        for(int i = 0; i < array2.length; i++){
            arr_2[i] = Integer.parseInt(array2[i]);
        }
        ArrayList<Integer> sum = new ArrayList<>();
        int num_1 = K > arr_1.length ? arr_1.length : K;
        int num_2 = K > arr_2.length ? arr_2.length : K;
        for(int i = 0; i < num_1; i++){
            for(int j = 0; j < num_2; j++){
                sum.add(arr_1[i] + arr_2[j]);
            }
        }
        Collections.sort(sum, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o2 - o1;
            }
        });
        for(int i = 0; i < K; i++)
            System.out.println(sum.get(i));
    }
}


相关文章

  • 两个数组的元素之和最大的前k项

    题目描述: 解决思路: 时间复杂度很低,除了数组排序那块需要O(NlogN)(或者O(MlogM),看谁最大)之外...

  • 解决TopK

    前言 TopK问题有以下几种常见形式 数组中的第K个最大元素动态添加的数组中的第K个最大元素数组中前k个最大的元素...

  • LeetCode 347

    前 K 个高频元素 在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素...

  • LeetCode-215-数组中的第K个最大元素

    数组中的第K个最大元素 题目描述:给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。请...

  • LeetCode #1191 K-Concatenation M

    1191 K-Concatenation Maximum Sum K 次串联后最大子数组之和 Descriptio...

  • #常见面试算法题

    阅读目录 *求数组最大连续子序列之和 1.求数组最大连续子序列之和 一个有N个元素的整型数组arr,有正有负,数组...

  • 应用: 排序,从小到大用最大堆,从大到小用最小堆 选出元素中的 top k 个top k 个最小数:数组前k个元素...

  • 【算法】第K大的数(Java)

    给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。

  • 215.(中级)数组中的第K个最大元素

    在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不...

  • 数组中的第K个最大元素

    在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不...

网友评论

      本文标题:两个数组的元素之和最大的前k项

      本文链接:https://www.haomeiwen.com/subject/smtigftx.html