zoukankan      html  css  js  c++  java
  • 23. Merge k Sorted Lists

    SLinkedList<int> slist = new SLinkedList<int>();
    slist.AppendRange(new[] {12, 2, 43});
    Console.WriteLine(slist.Print());
    
    SLinkedList<int> slist2 = new SLinkedList<int>();
    slist.AppendRange(new[] { 11, 3, 54 });
    Console.WriteLine(slist2.Print());
    
    SLinkedList<int> slist3 = new SLinkedList<int>();
    slist.AppendRange(new[] { 44, 33, 22 });
    Console.WriteLine(slist3.Print());
    
    Console.WriteLine("MergeList");
    List<SLinkedList<int>> arr = new List<SLinkedList<int>> { slist, slist2, slist3 };
    var rslt = arr.MergeList();
    Console.WriteLine(rslt.Print());
    

    /// <summary>
    /// 合并一组有序链表
    /// </summary>
    /// <typeparam name="T"></typeparam>
    /// <param name="arr"></param>
    /// <returns></returns>
    public static SLinkedList<T> MergeList<T>(this List<SLinkedList<T>> arr) where T: IComparable<T>
    {
        var length = arr.Count;
        if (length < 1)
        {
            return null;
        }
        if (length == 1)
        {
            return arr[0];
        }
        var num = length / 2;
        var left = MergeList(arr.GetRange(0, num));
        var right = MergeList(arr.GetRange(num, length - num));
        return left.MergeList(right);
    }
    
  • 相关阅读:
    Tomcat 参数调优
    weBDrriver API接口方法小记
    cookie、session、sessionid 与jsessionid
    性能测试知多少---性能需求分析
    nvl()与regexp_replace()
    Action类的工作机制
    创建视图组件
    struts 与 Java Web应用简介
    java入门2
    java入门1
  • 原文地址:https://www.cnblogs.com/wesson2019-blog/p/15500474.html
Copyright © 2011-2022 走看看