LeetCode23
来源:互联网 发布:二维动画软件大全 编辑:程序博客网 时间:2024/06/14 03:03
【题目】
merge k sorted lists
即将k个有序排列的list融合成一个有序排列的list
【思路】
分治的方法很容易想到,所以本文采用常规思路进行求解
共有k个list,假设其中最长的一个list由n个元素
建立一个最大长度为k的Linkedlist,用于存放k个list尚未排序部分的第一个元素,并进行排序;
选取Linkedlist中第一个元素及当前待排序序列中最小的元素,放入结果中,并用该元素的next节点来替换该元素,若为null则直接删除该节点即可,并重新对Linkedlist进行排序;
重复上述步骤,直至Linkedlist为空。
由于Linkedlist维护的时间花销,该算法的事件复杂度为O(nklogk)。
【Java代码】
public ListNode mergeKLists(ListNode[] lists){if(lists.length == 0)return null;else if(lists.length == 1)return lists[0];else{ListNode result = new ListNode(0);LinkedList<ListNode> candidate = new LinkedList<ListNode>();for(int i = 0 ; i < lists.length ; i++){if(lists[i] == null) continue;candidate.add(lists[i]);}Collections.sort(candidate,new Comparator<ListNode>(){public int compare(ListNode l1,ListNode l2){return l1.val - l2.val;}});ListNode s = result;while(!candidate.isEmpty()){ListNode n = new ListNode(candidate.get(0).val);s.next = n; s = s.next;ListNode temp = candidate.get(0).next;candidate.remove(candidate.get(0));if(temp != null){candidate.add(temp);Collections.sort(candidate,new Comparator<ListNode>(){public int compare(ListNode l1,ListNode l2){return l1.val - l2.val;}});}}return result.next;}}
阅读全文
0 0
- leetcode23
- LeetCode23
- Leetcode23: Count and Say
- LeetCode23:Swap Nodes in Pairs
- [LeetCode23]Merge k Sorted Lists
- leetcode23 -- Merge k Sorted Lists
- Leetcode23-Merge k Sorted Lists
- LeetCode23:Merge k Sorted Lists
- leetcode23---Merge k Sorted Lists
- LeetCode23. Merge k Sorted Lists!!!!!!
- leetcode23:Merge k Sorted Lists
- leetcode23 Merge k Sorted Lists
- leetcode23. Merge k Sorted Lists
- LeetCode23 – Merge k Sorted Lists (Java)
- LeetCode23. Merge k Sorted Lists分治法
- leetcode23. Merge k Sorted Lists总结
- leetcode23~Merge k Sorted Lists Add to List
- LeetCode23 Merge k Sorted Lists 把K个有序链表连接成一个
- zephyr学习笔记---CC3200---跑马灯
- migration作用分析
- 动态加载js
- Spring(五)Spring整合Hibernate
- linux目录结构解析
- LeetCode23
- hello,world
- Linux中虚拟内存和物理内存的关系
- 网桥原理
- dubbo 人工管理服务提供者的上线和下线
- 仙剑奇侠传 游戏 开发 教程 Xianjian qixia development Game development tutorial
- hdu 2199_Can you solve this equation?
- GDB Core文件查询程序崩溃原因
- MySql按周,按月,按日分组统计数据