Merge k Sorted Lists ——待解决TLE

我就是我 2022-08-08 06:25 201阅读 0赞

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

【分析】

思路基于两个有序链表合并。只不过每次都需要遍历选出K个链表中最小的那个数。

【代码】

下面的代码始终LTE,原因是一个很长的case超时,改了好久也没有改对,希望后面可以纠正!

  1. class Solution {
  2. public:
  3. ListNode *mergeKLists(vector<ListNode *> &lists)
  4. {
  5. int n=lists.size();
  6. if(n==0)return NULL;
  7. ListNode *head=new ListNode(INT_MIN);
  8. ListNode *ret=head;
  9. int min;
  10. bool finish;
  11. while(1)
  12. {
  13. finish=true;
  14. min=INT_MAX;
  15. int i;int mini;
  16. for(i=0;i<lists.size();i++)
  17. {
  18. if(lists[i]!=NULL)
  19. {
  20. if(lists[i]->val<min)
  21. {
  22. min=lists[i]->val;
  23. mini=i;
  24. finish=false;
  25. }
  26. }
  27. }
  28. if(finish)break;
  29. head->next=lists[mini];
  30. head=head->next;
  31. lists[mini]=lists[mini]->next;
  32. }
  33. return ret->next;
  34. }
  35. };

发表评论

表情:
评论列表 (有 0 条评论,201人围观)

还没有评论,来说两句吧...

相关阅读