Merge k Sorted Lists ——待解決TLE


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


    【分析】


    思路基於兩個有序鏈表合併。只不過每次都需要遍歷選出K個鏈表中最小的那個數。


    【代碼】

    下面的代碼始終LTE,原因是一個很長的case超時,改了好久也沒有改對,希望後面可以糾正!

class Solution {
public:
    ListNode *mergeKLists(vector<ListNode *> &lists)
    {
        int n=lists.size();
        if(n==0)return NULL;      
        ListNode *head=new ListNode(INT_MIN);
        ListNode *ret=head;
        int min; 
        bool finish;
        while(1)
       {
          finish=true;
          min=INT_MAX;
          int i;int mini;
          for(i=0;i<lists.size();i++)
          {
             if(lists[i]!=NULL)
             {
                if(lists[i]->val<min)
                {
                    min=lists[i]->val;
                    mini=i;
                    finish=false;
                }
             }           
          }
          if(finish)break;   
          head->next=lists[mini];
          head=head->next;
          lists[mini]=lists[mini]->next;     
       }
       return ret->next;
    }
};


發佈了258 篇原創文章 · 獲贊 86 · 訪問量 78萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章