zoukankan      html  css  js  c++  java
  • LeetCode-23. Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

    Example:

    Input:
    [
      1->4->5,
      1->3->4,
      2->6
    ]
    Output: 1->1->2->3->4->4->5->6

    堆+链表 时间复杂度O(nlogk)

        public ListNode mergeKLists(ListNode[] lists) {
            ListNode head = new ListNode(0);
            head.next = null;
            PriorityQueue<ListNode> queue = new PriorityQueue<ListNode>(new Comparator<ListNode>(){
                public int compare(ListNode n1,ListNode n2){
                    return n1.val-n2.val;
                }
            } );
            for(int i = 0;i< lists.length;i++){
                if(lists[i]!=null){
                    queue.add(lists[i]);
                }
            }
            ListNode cur = head;
            while(!queue.isEmpty()){
                ListNode tmp = queue.poll();
                cur.next = tmp;
                cur = cur.next;
                if(tmp.next!=null){
                    queue.add(tmp.next);
                }
            }
            return head.next;
        }
  • 相关阅读:
    SonarQube
    Gerrit
    Jenkins
    Jenkins
    GitLab
    GitLab
    GitLab
    centos7配置国内yum源
    CentOS7 ping: unknown host www.baidu.com
    VirtualBox下安装CentOS7系统
  • 原文地址:https://www.cnblogs.com/zhacai/p/11165364.html
Copyright © 2011-2022 走看看