Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Example:
Input:[ 1->4->5, 1->3->4, 2->6 ]
Output:1->1->2->3->4->4->5->6
func mergeKLists(_ lists: [ListNode?]) -> ListNode? {
var i = 0, j = 0, fl = lists.compactMap({$0}), n = fl.count, p: ListNode?
if n < 1 { return nil }
var arr = Array(repeating: 0, count: 256*256)
while i < n {
p = fl[i]; i += 1
while let p1 = p {
arr[j] = p1.val
p = p1.next; j += 1
if p == nil, i < n {
p1.next = fl[i]
}
}
}
arr = Array(arr[..<j]).sorted()
i = 0; p = fl[0]
while let q = p, i < j {
q.val = arr[i]
p = q.next; i += 1
}
return fl[0]
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring Boot实战
[美]克雷格·沃斯 / 丁雪丰 / 人民邮电出版社 / 2016-9 / 59.00元
本书以Spring应用程序开发为中心,全面讲解如何运用Spring Boot提高效率,使应用程序的开发和管理更加轻松有趣。作者行文亲切流畅,以大量示例讲解了Spring Boot在各类情境中的应用,内容涵盖起步依赖、Spring Boot CLI、Groovy、Grails、Actuator。对于Spring Boot开发应用中较为繁琐的内容,附录奉上整理完毕的表格,一目了然,方便读者查阅。一起来看看 《Spring Boot实战》 这本书的介绍吧!