每日一题---23. 合并K个升序链表[力扣][Go]
2023-03-14 22:58:33 时间
题目描述
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
解题代码
困难题第一次一遍过,但是用了递归还有for循环,就导致时间和空间复杂度都比较高。
func mergeKLists(lists []*ListNode) *ListNode { if len(lists) == 0 { return nil } if len(lists) == 1 { return lists[0] } lists = mergeKListsStep(lists) return mergeKLists(lists) } func mergeKListsStep(lists []*ListNode) []*ListNode { var list = &ListNode{Val: 0,Next: nil} p := list one := lists[0] two := lists[1] for one != nil && two != nil { if one.Val < two.Val { tem := one list.Next = tem list = list.Next one = one.Next } else { tem := two list.Next = tem list = list.Next two = two.Next } } if one == nil { list.Next = two } if two == nil { list.Next = one } lists = lists[2:] lists = append(lists, p.Next) return lists }
提交结果
相关文章
- 如何把设备安全的接入AWS IoT(二)
- 如何把设备安全的接入AWS IoT(一)
- 浅谈AWS CloudFront在特殊场景下的配置和错误处理
- python MapReduce单词统计
- 使用 AWS Lambda 和 AWS Greengrass 在边缘站点进行协议转换
- 托管 Spot 训练:最高可节省 90% 的 Amazon SageMaker 训练作业成本
- Direct Connect A/B段双活实现
- 使用 AWS IoT 服务进行资产状况监控
- 使用 AWS IoT Core 即时预配置
- 利用 Amazon S3 inventory, Amazon EMR, 和 Amazon Athena 来触发针对预先存在的对象的跨区域复制
- linux安装opencv-python
- 通过 Amazon EMR 重新配置动态修改集群
- 新增功能 — 触发内核错误以诊断 EC2 实例无响应的问题
- Amplify 控制台 — 托管全堆栈式无服务器 Web 应用程序
- 将网络负载均衡器与 Amazon EKS 上的 NGINX 入口控制器配合使用
- 使用 Amazon Kinesis Data Firehose 和 Amazon EMR 中的 Apache Spark 优化流式数据处理
- 通过 Amazon EMR 重新配置动态修改集群
- 新版 AWS Tools for PowerShell 的预览版
- 借助 AWS Step Functions 将回调 URL 用于批准电子邮件
- 认证授权专题(一) : Cognito, OIDC 实现 S3 精细化权限控制