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

大丰区城乡和住房建设局网站线上推广哪个平台最好

大丰区城乡和住房建设局网站,线上推广哪个平台最好,新疆培训网站建设,网页版游戏平台23. 合并 K 个升序链表 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 正文 这道题有多种解决方案 堆 比较容易,又比较直观的就是堆排序,将每个节点加入最小根堆中&…

23. 合并 K 个升序链表

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。


正文

这道题有多种解决方案

比较容易,又比较直观的就是堆排序,将每个节点加入最小根堆中,依次弹出加入最后的链表,就可得出答案,事实上,并不需要每次都将所有链表加入,只需要最开始将每个链表的头节点加入,然后在弹出链表时,直接将弹出的节点的下一个节点再加入堆即可,这样能够有效节省空间。

代码如下:

func mergeKLists(lists []*ListNode) *ListNode {lh := &ListHeap{}heap.Init(lh)for _, node := range lists {if node != nil {heap.Push(lh, node)}}dummy := &ListNode{}tmp := dummyfor lh.Len() > 0 {Node := heap.Pop(lh).(*ListNode)tmp.Next = Nodetmp = tmp.Nextif Node.Next != nil {heap.Push(lh, Node.Next)}}return dummy.Next
}type ListHeap []*ListNodefunc (l *ListHeap) Len() int {return len(*l)
}func (l *ListHeap) Less(i, j int) bool {return (*l)[i].Val < (*l)[j].Val
}func (l *ListHeap) Swap(i, j int) {(*l)[i], (*l)[j] = (*l)[j], (*l)[i]
}func (l *ListHeap) Push(x any) {*l = append(*l, x.(*ListNode))
}func (l *ListHeap) Pop() any {res := (*l)[len(*l)-1]*l = (*l)[:len(*l)-1]return res
}

堆排序不用ide也太难写了~

分治

跟归并排序的思路类似,将链表切片分成两部分,分别合并成一个链表,再将这两个链表进行合并。

可以理解为:

	链表1  链表2    链表3    链表4|		  |		|		  ||		  |		|		  ||		  |		|		  ||		  |		|		  |+————+————+     +————+————+|			 	 |链表			链表+————————+——————+||最终链表

代码如下:

func mergeKLists(lists []*ListNode) *ListNode {return Merge(lists, 0, len(lists) - 1)
}func Merge(lists []*ListNode, l int, r int) *ListNode {if l == r {return lists[l]} else if l > r {return nil}mid := (l + r) / 2return MergeTwoLists(Merge(lists, l, mid), Merge(lists, mid + 1, r))
}func MergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {dummy := &ListNode{}tmp := dummyfor list1 != nil && list2 != nil {if list1.Val > list2.Val {tmp.Next = list2tmp = tmp.Nextlist2 = list2.Next} else {tmp.Next = list1tmp = tmp.Nextlist1 = list1.Next}}if list1 != nil {tmp.Next = list1}if list2 != nil {tmp.Next = list2}return dummy.Next
}

http://www.dtcms.com/wzjs/286627.html

相关文章:

  • 嘉兴网站排名优化公司新闻发布会稿件
  • 注册网站安全吗飓风seo刷排名软件
  • wordpress 主题 样式表关键词优化排名软件s
  • 唯品会网站建设特色自媒体平台收益排行榜
  • 做网站一定要公司备案吗产品网络营销
  • 网站建设公司行情国际局势最新消息今天
  • 绵阳最有实力的公司网站建设百度搜索电话
  • 外国最火的直播app百度 seo优化作用
  • wordpress添加qq聊天高端网站优化公司
  • 常德网站建设培训机构百度推广助手官方下载
  • 真人菠菜网站开发制作百度百度
  • h5网站建设 北京seo推广 课程
  • 东铁匠营网站建设百度网站首页
  • 娄底做网站的公司哪些广告平台留号码
  • 深圳市工商注册信息查询网站充电宝关键词优化
  • 南山的网站建设百度联盟项目看广告挣钱
  • 网站制作多少钱400推广策略及推广方式
  • 政府网站做减法公务员考题微信软文案例
  • 益阳网站建设公司电话建网站教程
  • 电子商务网站建设实训个人总结内部优化
  • 什么是网站平台开发工具站长之家备案查询
  • 东莞免费做网站公司百度手机助手网页版
  • wordpress支持什么格式视频百度手机seo软件
  • 招商网站怎么做神童预言新冠2023结束
  • 网站怎么做劫持关键词在线挖掘网站
  • 傻瓜式在线做网站百度快照怎么看
  • 游戏网站的监管由谁来做给公司做网站的公司
  • 丰台网站建设公司免费发布信息网平台
  • 网上找人做动态网站的报价今日头条指数查询
  • 法院内网网站的建设目的百度开户渠道商哪里找