zoukankan      html  css  js  c++  java
  • Merge k Sorted Lists

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

    第一遍:

     1 public class Solution {
     2     public ListNode mergeKLists(ArrayList<ListNode> lists) {
     3         // Start typing your Java solution below
     4         // DO NOT write main() function
     5         if(lists.size()==0) return null;
     6         ListNode header = new ListNode(-1), cur = header;
     7         // boolean sig = true;
     8         while(true){
     9             int pos = -1;
    10             for(int i = 0; i < lists.size(); i ++){
    11                 if(lists.get(i) != null && (pos == -1 || lists.get(i).val < lists.get(pos).val))
    12                     pos = i;
    13             }
    14             if(pos != -1){
    15                 cur.next = lists.get(pos);
    16                 cur = cur.next;
    17                 lists.set(pos,lists.get(pos).next);
    18 
    19             }else{
    20                 break;
    21             }
    22         }
    23         return header.next;
    24     }
    25 }

    第三遍:

    去掉 null的项 可以加速 查找。

     1 public class Solution {
     2     public ListNode mergeKLists(ArrayList<ListNode> lists) {
     3         ListNode header = new ListNode(-1);
     4         ListNode cur = header;
     5         if(lists == null || lists.size() == 0) return null;
     6         while(true){
     7             int min = -1;
     8             for(int i = 0; i < lists.size(); i ++){
     9                 if(lists.get(i) == null){
    10                     lists.remove(i);
    11                     i --;
    12                 }
    13                 else if(min == -1 || lists.get(i).val < lists.get(min).val)
    14                     min = i;
    15             }
    16             if(min == -1) break;
    17             else{
    18                 cur.next = lists.get(min);
    19                 lists.set(min,lists.get(min).next);
    20                 cur = cur.next;
    21             }
    22         }
    23         return header.next;
    24     }
    25 }
  • 相关阅读:
    Tornado web 框架
    mysql_orm模块操作数据库(17.6.29)
    mysql小结篇3 索引、分页、执行计划--(17.6.28)
    Oracle触发器Trigger2行级
    Oracle触发器Trigger基础1
    Oracle函数function
    Oracle异常的抛出处理
    Oracle利用过程procedure块实现银行转账
    Oracle存储过程procedure
    PL/SQL块loop..各种循环练习
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3893919.html
Copyright © 2011-2022 走看看