[Leetcode] Merge K sorted lists
来源:互联网 发布:网店数据化分析的概念 编辑:程序博客网 时间:2024/05/09 20:53
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
二分法可以降低复杂度。一遍通过,耶~
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *mergeKLists(vector<ListNode *> &lists) { // Start typing your C/C++ solution below // DO NOT write int main() function if(lists.size()==0) return NULL; int size = lists.size(); while(size>1) { int halfSize = (1+size)/2; for(int i=0;i<halfSize && halfSize+i<size;i++) //重要! { ListNode *l1 = lists[i]; ListNode *l2 = lists[i+halfSize]; ListNode *result = mergeTwoLists(l1,l2); lists[i] = result; } size = halfSize; } return lists[0]; } ListNode *mergeTwoLists(ListNode* list1,ListNode* list2) { ListNode* tmp1 = list1; ListNode* tmp2 = list2; ListNode* vHead = new ListNode(0); ListNode* tmp = vHead; while(tmp1&&tmp2) { if(tmp1->val<tmp2->val) { tmp->next = tmp1; tmp1 = tmp1->next; } else { tmp->next = tmp2; tmp2 = tmp2->next; } tmp = tmp->next; } while(tmp1) { tmp->next = tmp1; tmp1 = tmp1->next; tmp = tmp->next; } while(tmp2) { tmp->next = tmp2; tmp2 = tmp2->next; tmp = tmp->next; } return vHead->next; }};
- LeetCode: Merge k Sorted Lists
- LeetCode Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge k Sorted Lists
- [Leetcode] Merge K sorted lists
- [LeetCode]Merge k Sorted Lists
- [LeetCode] Merge k Sorted Lists
- LeetCode-Merge k Sorted Lists
- LeetCode: Merge k Sorted Lists
- LeetCode - Merge k Sorted Lists
- LeetCode | Merge k Sorted Lists
- 【leetcode】Merge k Sorted Lists
- Leetcode: Merge k Sorted Lists
- <Leetcode>Merge k Sorted Lists
- [LeetCode] Merge K sorted lists
- [LeetCode] Merge k Sorted Lists
- 【Leetcode】Merge k Sorted Lists
- 实时处理摄像头的图像 XBImageFilters
- 轻量级的菜单弹出效果 - RNExpandingButtonBar
- 可以替换 UITextField 就可以达到校验目的的工具:US2FormValidator
- 照片多选工具:AGImagePickerController
- AcornCharts
- [Leetcode] Merge K sorted lists
- xml 配置UI 的工具:pegasus
- 静态图-动态化的工具 JSAnimatedImagesView 。类似“新浪视野”
- TextStepperField 有增减功能的 textfield
- CoolUIViewAnimations 几种动画效果
- UIImage Sprite Additions
- BSKeyboardControls 系统键盘上的浮层
- Android Pattern Lock on iPhone
- FlipTransform for iOS