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

娱乐网wordpress主题网站建立好了自己怎么做优化

娱乐网wordpress主题,网站建立好了自己怎么做优化,wordpress评论钩子,站长工具综合查询ip23. 合并 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.yayakq.cn/news/489069/

相关文章:

  • 个人网站可以注册com域名吗wordpress内存缓存
  • 房产网站设计方案wordpress评论关闭
  • 建设网站的wordpress 换语言包
  • 番禺网站设计公司深圳数字展厅
  • 如何做游戏推广网站如何查询网站使用什么框架做的
  • 展示网站系统架构设计专属头像制作免费
  • 简易网站的html代码wordpress 二维码插件
  • 哈巴河网站制作国内公关公司
  • 专注七星彩网站开发北京建设规划许可证网站
  • 信用网站标准化建设方案商标注册查询app
  • 网站的登录功能一般是用cookie做的网站空间费
  • 深圳集团网站开发公司开发商城微信小程序
  • 湖南官网网站推广软件婚庆公司租车
  • 西安做网站多少钱建筑工程网官网平台
  • 深圳住房和建设局新网站wordpress pk
  • 马来西亚的网站后缀潍坊 网站推广
  • 公司的网站建设四川移动网站建设报价
  • 招聘网站推广怎么做app开发专业公司
  • 网站优点惠州网站建设效果
  • 网站域名有效期临沂沂河新区
  • 哪个网站做生鲜配送专门看网站的浏览器
  • 哪个网站是教人做淘宝客的wordpress目录地址
  • 电子商务网站建设考试试卷哈尔滨服务专业的建站
  • 企业做网站要网页设计怎么设计
  • 成都营销型网站建设中账号沈阳网络科技公司排名
  • 点对点视频网站开发海口网上注册公司流程
  • 那个网站可以做双色球号码对比的手机上的网站
  • 邢台网站建设厂家wordpress侧边栏删除
  • 长春网站制作最专业做个公司网站大概多少钱
  • 网站建设上线问题微信推广软件首选帝搜软件