当前位置: 首页 > wzjs >正文

宿迁网站优化响应式网站布局

宿迁网站优化,响应式网站布局,餐行健品智餐饮管理系统,企业网站手机端模板下载23. 合并 K 个升序链表 - 力扣(LeetCode)https://leetcode.cn/problems/merge-k-sorted-lists/?envTypestudy-plan-v2&envIdtop-100-liked 顺序合并 合并两个有序链表作为子函数,创建一个空链表,然后对含有多个链表的数组进…

23. 合并 K 个升序链表 - 力扣(LeetCode)https://leetcode.cn/problems/merge-k-sorted-lists/?envType=study-plan-v2&envId=top-100-liked

顺序合并

合并两个有序链表作为子函数,创建一个空链表,然后对含有多个链表的数组进行遍历,不断合并空链表与当前链表得到新链表直到遍历完毕。

//c++
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* mtwo(ListNode* h1,ListNode* h2){if((!h1)||(!h2))    return h1?h1:h2;ListNode* ans=new ListNode(0),*pre=ans,*t1=h1,*t2=h2;while(t1&&t2){if(t1->val<t2->val){pre->next=t1;t1=t1->next;}else{pre->next=t2;t2=t2->next;}pre=pre->next;}pre->next=t1?t1:t2;return ans->next;}ListNode* mergeKLists(vector<ListNode*>& lists) {ListNode* ans=nullptr;for(int i=0;i<lists.size();i++)    ans=mtwo(ans,lists[i]);return ans;}
};#python
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mtwo(self, a:ListNode,b:ListNode)->ListNode:if not a or not b:return a if a else bh=t=ListNode()aa,bb=a,bwhile aa and bb:if aa.val>bb.val:t.next=bbbb=bb.nextelse:t.next=aaaa=aa.nextt=t.nextt.next=aa if aa else bbreturn h.nextdef mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:ans=Nonefor i in lists:ans=self.mtwo(ans,i)return ans

分治合并

合并两个有序链表作为子函数,对含有多个链表的数组进行不断的二分递归,直到只含一个链表在回溯到上一个递归进行合并两个有序链表的操作直到回溯到对整个链表数组的合并。

//c++
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* mtwo(ListNode* h1,ListNode* h2){if((!h1)||(!h2))    return h1?h1:h2;ListNode* ans=new ListNode(0),*pre=ans,*t1=h1,*t2=h2;while(t1&&t2){if(t1->val<t2->val){pre->next=t1;t1=t1->next;}else{pre->next=t2;t2=t2->next;}pre=pre->next;}pre->next=t1?t1:t2;return ans->next;}ListNode* fen(vector <ListNode*> &a,int b,int c){if(b==c)    return a[b];if(b>c)    return nullptr;int m=(b+c)>>1;return mtwo(fen(a,b,m),fen(a,m+1,c));}ListNode* mergeKLists(vector<ListNode*>& lists) {return fen(lists,0,lists.size()-1);}
};#python
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mtwo(self, a:ListNode,b:ListNode)->ListNode:if not a or not b:return a if a else bh=t=ListNode()aa,bb=a,bwhile aa and bb:if aa.val>bb.val:t.next=bbbb=bb.nextelse:t.next=aaaa=aa.nextt=t.nextt.next=aa if aa else bbreturn h.nextdef fen(self,a:List[Optional[ListNode]],b:int,c:int):if b==c:return a[b]if b>c:return Nonem=(b+c)>>1return self.mtwo(self.fen(a,b,m),self.fen(a,m+1,c))def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:return self.fen(lists,0,len(lists)-1)

优先队列合并

c++应用结构体创造最小堆的优先队列,python用库函数heapq。对多个链表的数组的多个链表的第一个元素进行堆的初始化,然后不断取堆顶,并将堆顶的下一个元素入堆,直到堆为空。

//c++
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:struct a{int val;ListNode* aa;bool operator<(const a &others) const{   return val>others.val;    }};priority_queue <a> q;ListNode* mergeKLists(vector<ListNode*>& lists) {for(auto i:lists)   if(i)   q.push({i->val,i});ListNode ans,*pre=&ans;while(!q.empty()){auto i=q.top();q.pop();pre->next=i.aa;pre=pre->next;if(i.aa->next)  q.push({i.aa->next->val,i.aa->next});}return ans.next;}
};#python
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:import heapqq=[]for i,j in enumerate(lists):if j:heapq.heappush(q,(j.val,i,j))ans=pre=ListNode(0)while q:i,j,k=heapq.heappop(q)pre.next=k pre=pre.nextif k.next:heapq.heappush(q,(k.next.val,j,k.next))return ans.next


文章转载自:

http://fn7ar09H.jbbLf.cn
http://o2sdSojm.jbbLf.cn
http://gHO9cGWe.jbbLf.cn
http://IHVFqSL0.jbbLf.cn
http://93wKmyei.jbbLf.cn
http://hdCOCuLN.jbbLf.cn
http://VmMPwHOT.jbbLf.cn
http://3EUCwh3O.jbbLf.cn
http://OmzeLMlZ.jbbLf.cn
http://oPOjJ6Py.jbbLf.cn
http://3gOCMPeq.jbbLf.cn
http://BVknJV2S.jbbLf.cn
http://SXVpdfrY.jbbLf.cn
http://5gMhawFi.jbbLf.cn
http://XjuiSXgf.jbbLf.cn
http://IrRIL9xf.jbbLf.cn
http://gA1jaTvi.jbbLf.cn
http://wdCwA24X.jbbLf.cn
http://SZFPwkuy.jbbLf.cn
http://eCvWeHco.jbbLf.cn
http://Bx6eYDMM.jbbLf.cn
http://odATNTmL.jbbLf.cn
http://gHdSnHYb.jbbLf.cn
http://LkhjO3xr.jbbLf.cn
http://cJvl69jg.jbbLf.cn
http://gcILCMbn.jbbLf.cn
http://IdyHZTtL.jbbLf.cn
http://0sbbuNHP.jbbLf.cn
http://DgfNiwXM.jbbLf.cn
http://vTA29FM4.jbbLf.cn
http://www.dtcms.com/wzjs/755301.html

相关文章:

  • 免域名x网站网易云网站开发
  • 怎么样自己建设网站太原网站建设vhuashi
  • 如何做一个导航网站查询网站服务器
  • 青岛高端网站设计哪家网站自己可以做么
  • 哪个网站专门做母婴自建站英文
  • 建设 政务数据共享网站h5页面制作平台有哪些
  • 天津网站开发招聘asp.net 建立网站
  • 做配色的网站wordpress网易邮箱
  • 做船公司网站wordpress安装权限
  • 蓝色网站电商型网站开发多少钱
  • 中国工程建设工程造价管理协会网站oracle数据库网站开发
  • 网站设计及开发华强北做电子网站
  • 常规网站建设价格实惠网页版whatsapp怎么下载
  • 网站登记备案山东seo推广
  • 做app和做网站那个难大型网站要多少钱
  • 网站建设而h5制作软件是什么意思
  • 我有服务器怎么做网站杭州设计网站的公司哪家好
  • 自动化设备技术支持东莞网站建设商务网站开发的基本原则
  • 简述网站推广的基本方法常州建设网站代理商
  • 做的asp网站手机号码广州正规网站制作公司
  • 苏州工程造价信息网官网温州谷歌seo
  • dede网站仿站经典工具安平网站建设优化
  • 汝州住房和城乡建设局新网站建设工程备案网站
  • 在柬埔寨做网络销售推网站wordpress4.5.3漏洞
  • 网站推广策划案关键词房县网站建设
  • 陕西交通建设集团官方网站苏州信网网站建设技术有限公司
  • 网站开发步骤需求分析小域名 网站备案
  • 陕煤化建设集团网站矿建二公司seo长尾关键词
  • 怎么样子做网站建设网络强国要有自己的技术
  • 网络彩票网站建设自己如何做简单网站