Algorithms—23.Merge k Sorted Lists
来源:互联网 发布:方法论书籍知乎 编辑:程序博客网 时间:2024/06/05 18:05
思路:分治思想,拆分成2个进行处理。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */public class Solution { public ListNode mergeKLists(ListNode[] lists) { if (lists.length>2) { ListNode[] l1=new ListNode[lists.length/2]; ListNode[] l2=new ListNode[lists.length-lists.length/2]; for (int i = 0; i < lists.length; i++) {if (i<lists.length/2) {l1[i]=lists[i];}else {l2[i-lists.length/2]=lists[i];}}return mergeTwoLists(mergeKLists(l1),mergeKLists(l2));}else if (lists.length==2){return mergeTwoLists(lists[0],lists[1]);}else if (lists.length==1){return lists[0];}else {return null;} } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1==null) { return l2; } if (l2==null) { return l1; } ListNode l=null; if (l1.val>l2.val) { l=new ListNode(l2.val); l.next=mergeTwoLists(l1,l2.next); }else { l=new ListNode(l1.val); l.next=mergeTwoLists(l1.next,l2); } return l; } }
耗时:356ms,第一次测的时候是中下游,再测了次变成上游了。
0 0
- Algorithms—23.Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23.Merge K Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23.Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23.Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- 23. Merge k Sorted Lists
- java的反射机制
- 双指针的两种用法
- Linux下磁盘分区管理
- 用GDB调试程序
- [LeetCode][Java] Distinct Subsequences
- Algorithms—23.Merge k Sorted Lists
- linux系统性能标准
- 图像处理------图像梯度效果
- nyoj大数问题 比大小
- NSFileManager文件操作的十个小功能
- HDU 5308 I Wanna Become A 24-Point Master(2015多校第二场)
- POJ 1426:Find The Multiple
- 超详细介绍 图像处理(卷积)
- 第8章 对象和类