`

Merge K sorted arrays

 
阅读更多

Input: N sorted arrays of integers (in ascending order)

Output: Final sorted array of integers

 

public static class Node {
    int index = 0;
    List<Integer> list;
    public Node(List<Integer> list) {
        this.list = list;
    }
    
    public int peek() {
        return list.get(index);
    }

    public int next() {
        return list.get(index++);
    }
    
    public boolean hasNext() {
        return index < list.size();
    }
}
List<Integer> sortData(List<List<Integer>> numArray) {
    List<Integer> result = new ArrayList<>();
    Queue<Node> queue = new PriorityQueue<>(new Comparator<Node>(){
        public int compare(Node n1, Node n2) {
            return n1.peek() - n2.peek();
        }
    });
    for(List<Integer> list:numArray) {
        if(list != null && list.size() > 0) {
            queue.offer(new Node(list));
        }
    }
    while(!queue.isEmpty()) {
        Node node = queue.poll();
        result.add(node.next());
        if(node.hasNext()) {
            queue.offer(node); 
        }
    }
    return result;
}

 

分享到:
评论

相关推荐

    程序员面试宝典LeetCode刷题手册

    第四章 Leetcode 题解 1. Two Sum 2. Add Two Numbers 3. Longest Substring Without Repeating Characters ...23. Merge k Sorted Lists 24. Swap Nodes in Pairs 25. Reverse Nodes in k-Group 26. Remove Dupli

    归并排序

    主要是两步,先把数组分成两半(merge),再把这两半合并成有序的数组(mergeTwoSortedArrays)。 temp参数的作用是接收排序后的数组,然后再把值一一付给原数组,如果不加这个参数,我们就需要重复开辟空间,或者...

    leetcode分类-leetcode:leetcode问题的代码

    Arrays 地图 #1:Two Sum #3:Longest Substring Without Repeating Characters #5:Longest Palindromic Substring 链表 #2:Add Two Numbers 分而治之 #53:Maximum Subarray 队列/集 #3:Longest Substring Without ...

    cpp-算法精粹

    Merge Two Sorted Arrays Merge Two Sorted Lists Merge k Sorted Lists Sort List 快速排序 Sort Colors Kth Largest Element in an Array 桶排序 First Missing Positive 计数排序 H-Index 基数排序 Maximum Gap ...

    Coding Interview In Java

    7 Median of Two Sorted Arrays 33 8 Kth Largest Element in an Array 35 9 Wildcard Matching 37 10 Regular Expression Matching in Java 39 11 Merge Intervals 43 12 Insert Interval 45 13 Two Sum 47 14 Two ...

    lrucacheleetcode-leetcode:leetcode

    Arrays 5. Longest Palindromic Substring 7. Reverse Integer 9. Palindrome Number 11. Container With Most Water 12. Integer to Roman 13. Roman to Integer 14. Longest Common Prefix 15. 3Sum 20. Valid ...

    leetcode2sumc-Data-Structures-and-Algorithms:数据结构和算法

    sorted arrays length = len ( arr1 ) + len ( arr2 ) res = [ None for _ in range ( length )] i1 , i2 = 0 , 0 for i in range ( length ): if i2 == len ( arr2 ) or i1 &lt; len ( arr1 ) and arr1 [ i1 ] &lt;...

    leetcode添加元素使和等于-leetcode:我的leetcode解决方案

    Arrays Trapping Rain Water Integer to English Words Regular Expression Matching Merge K Sorted Lists Remove Invalid Parentheses Serialize and Deserialize Binary Tree Minimum Window Substring C++ STL中...

    leetcode双人赛-LeetCode:力扣笔记

    Arrays 困难 数学 Longest Palindromic Substring 中等 回文 ZigZag Conversion 中等 矩阵 重要 Reverse Integer 简单 字串 String to Integer (atoi) 中等 字串 麻烦 Palindrome Number 简单 字串 Container With ...

    leetcode中文版-LeetCode:LeetcodeC++/Java

    Arrays 两个排序数组的中位数 ary,binary search,dive and conquer 5 Longest Palindromic Substring 最长回文子串 string,dp 8 String to Integer(atoi) 字符串转整数 string 13 Roman to Integer 罗马数字转整数 ...

    lrucacheleetcode-Algorithm:一些常见的算法的解题报告

    Arrays 7.Reverse Integer 8.String to Integer (atoi) 9.Palindrome Number 11.Container With Most Water 14.Longest Common Prefix 15.3Sum 16.3Sum Closest 19.Remove Nth Node From End of List 20.Valid ...

    leetcode2-Leetcode:Leetcode_answer

    Arrays JavaScript O(log (m+n)) O(1) Hard 7 Reverse Integer JavaScript O(n) O(1) Easy 9 Palindrome Number JavaScript O(n) O(1) Easy 19 Remove Nth Node From End of List JavaScript O(n) O(1) Medium 21 ...

    lrucacheleetcode-geekbang-algorithms:geekbang-算法

    lru cache leetcode Class 1 数组 时间复杂度 根据下标查询 Lookup ...要求:对nums1进行inplace处理,并且已经为nums1开辟好了...arrays nums1 and nums2, the goal is to merge them into a single sorted array,

    javalruleetcode-LeetCode::lollipop:个人LeetCode习题解答仓库-多语言

    Arrays 5 Longest Palindromic Substring 8 String to Integer 11 Container with Most Water 14 Longest Common Prefix 15 Three Sum 16 Three Sum Closest 20 Valid Parentheses 26 Remove Duplicates from Sorted...

    leetcode添加元素使和等于-LeetCodeNotes:力码笔记

    Arrays 思路: 基于二分查找的思想 88. Merge Sorted Array 描述:合并两个有序数组,将B合并入A,A长度刚好为A.length + B.length nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 思路:从后往前将B并入A...

    leetcode2-DSA-problems-solutions:DSA-问题-解决方案

    (Merge_Sorted_Arrays) Kadane 的算法 (Kadane's_Algorithm) 合并重叠子区间(Merge_Overlapping_SubInterv) 2020 年 11 月 13 日(第 2 天): 设置矩阵零 帕斯卡三角 下一个排列 数组的反转 股票买卖 旋转矩阵 2020...

    lrucacheleetcode-LeetCodeSheet:记录自己Leetcode之旅

    Sorted Arrays 注意:后两题是与快速排序非常相似的快速选择(Quick Select)算法,面试中很常考 链表类(Linked List): 基础知识:链表如何实现,如何遍历链表。链表可以保证头部尾部插入删除操作都是O(1),

    leetcode答案-leetcode:每日三题

    arrays A and B, merge B into A as one sorted array.Note: You may assume that A has enough space (size that is greater or equal to m + n)to hold additional elements from B. The number of elements ...

    LeetCode最全代码

    26 | [Remove Duplicates from Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/)| [C++](./C++/remove-duplicates-from-sorted-array.cpp) [Python](./Python/remove-duplicates...

    Ruby中的算法和数据结构:算法,数据结构和编程挑战的Ruby实现

    Ruby中的算法和数据结构精选在超和该存储库包含各种算法和数据结构的Ruby实现,以及和的许多挑战的解决方案内容: 基于二分搜索的问题阵列旋转算法阵列旋转的块交换算法子数组问题(Kadane算法)改组数组在数组中...

Global site tag (gtag.js) - Google Analytics