合并 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。

示例:

输入:
[
  1->4->5,
  1->3->4,
  2->6
]
输出: 1->1->2->3->4->4->5->6
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode MergeKLists(ListNode[] lists) {
ListNode res = new ListNode();
ListNode p = res;
List<ListNode> index = new List<ListNode>();
for(int i=; i<lists.Length; i++)
{
ListNode node = new ListNode();
node.next = lists[i];
index.Add(node);
}
while(index.Count != )
{
List<int> mins = new List<int>();
int min = int.MaxValue;
for(int i=index.Count-; i>=; i--)
{
if(index[i].next != null)
{
if (index[i].next.val < min)
{
min = index[i].next.val;
mins.Clear();
mins.Add(i);
}
else if (index[i].next.val == min)
{
mins.Add(i);
}
}
}
for(int i=; i<mins.Count; i++)
{
ListNode node = new ListNode(index[mins[i]].next.val);
p.next = node;
p = node;
index[mins[i]] = index[mins[i]].next;
}
for(int i = index.Count - ; i >= ; i--)
{
if(index[i].next == null)
{
index.Remove(index[i]);
}
}
}
return res.next;
}
}

0008 合并K个排序链表的更多相关文章

  1. [LeetCode] 23. 合并K个排序链表

    题目链接: https://leetcode-cn.com/problems/merge-k-sorted-lists/ 题目描述: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂 ...

  2. [Swift]LeetCode23. 合并K个排序链表 | Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. E ...

  3. 合并K个排序链表

    合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: 1-&g ...

  4. 合并K个排序链表(java实现)

    题目: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: ...

  5. LeetCode(23):合并K个排序链表

    Hard! 题目描述: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2-> ...

  6. LeetCode题解-23 合并K个排序链表 Hard

    合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1->1-&g ...

  7. Leetcode题库——23.合并k个排序链表

    @author: ZZQ @software: PyCharm @file: mergeKLists.py @time: 2018/10/12 19:55 说明:合并 k 个排序链表,返回合并后的排序 ...

  8. leetcode 23. 合并K个排序链表 JAVA

    题目: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [   1->4->5,   1->3->4,   2->6 ] 输出: ...

  9. 代码题(14)— 合并有序链表、数组、合并K个排序链表

    1.21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1->3->4 输出 ...

随机推荐

  1. 在word中批量更改Mathtype公式的格式

    方法参照下面这个链接 还有这个方法

  2. 服务端渲染时无法获得环境变量的值,一直是undefined

    1.服务端渲染时无法获得环境变量的值,一直是undefined 2.ngnix做代理以后无法无法获取node设置的cookie

  3. 02MYSQL查询语句

    查询语句是用于将表里的数据查询出来==查询可以返回一个结果集(表) | 或者的意思   * 代表当前表的所有字段 **查询语句的语法:select *| 字段名列表 from 表名 [where 条件 ...

  4. The listener supports no services

    问题描述 sql> lsnrctl start 提示: The listener supports no services The command completed successfully ...

  5. jenkins中shell脚本编写的两个注意点

    在jenkins的build中,如果用shell脚本的话,要记住有两个地方要注意 1.由于默认jenkins是使用/bin/bash -xe xxx.sh来调用脚本的,所以不同于日常写的脚本,任何一行 ...

  6. rapid7/metasploitable3 CTF摘要

    rapid7/metasploitable3 俗话说,没图说个JB.我专门做了个图以供欣赏,做图技术可能有点糙,见谅见谅. 2016年11月,rapid7发布了metasploitable3,以后简称 ...

  7. [工作积累] UE4 TAA ReProjection的精度处理

    先贴一个UE4 TAA的slidehttps://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf ...

  8. C++ 基于凸包的Delaunay三角网生成算法

    Delaunay三角网,写了用半天,调试BUG用了2天……醉了. 基本思路比较简单,但效率并不是很快. 1. 先生成一个凸包: 2. 只考虑凸包上的点,将凸包环切,生成一个三角网,暂时不考虑Delau ...

  9. 2019软件工程第二次作业(VS2017中对C++的单元测试)

    建立工程,分别编写cpp和头文件 cpp文件中的代码如下: #include<iostream> #include"test.h" using namespace st ...

  10. 用寄快递模拟数据在网络中的传送过程,发送一个ip数据报到接受这个ip数据报经历的过程

    发送一个ip数据报到接受这个ip数据报经历的过程 好比寄一个快递的过程 这个包裹一共有三层, 这个包裹的最里面是数据,数据 第二层写着目的ip地址和源ip地址,即收件人和发件人的姓名 第三层也就是最外 ...