首页 > 其他 > 详细

leetcode刷题3

时间:2019-08-07 21:28:23      阅读:107      评论:0      收藏:0      [点我收藏+]

今天刷的题是LeetCode第23题。合并k个有序链表。

该题,我现在采用的是暴力法解决。后续将添加其他解决方法。所谓的暴力法求解指的是:将链表中所有数据保存到数组中,然后统一排序,再重新生成新的链表。代码如下:

package DynamicProgramming;

import LeetCodePart1.ListNode;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
import org.w3c.dom.ls.LSOutput;

import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;

/**
 * @date 2019/8/7
 * @description 合并K个有序链表
 */
public class MergeKLink {
    public static ListNode merge1(ListNode[] lists){
        /**
        * @param lists
         * @Description 这是合并k个有序链表的第一个方法。暴力法
         * 暴力法的求解思路是:先将所有的链表中的数据保存到一个数组中,然后排序,再生成新的链表
         */
        int size=lists.length;
        List<Integer> list=new ArrayList<>();
        for (int i = 0; i <size ; i++) {
            while (lists[i]!=null){
                list.add(lists[i].getVal());
                lists[i]=lists[i].getNext();
            }
        }
        Collections.sort(list);
        ListNode result=new ListNode(list.get(0));
        ListNode point =result;
        for (int i = 0; i <list.size() ; i++) {
            point.setNext(new ListNode(list.get(i)));
            point=point.getNext();
        }
        return result.getNext();
    }
}

 

leetcode刷题3

原文:https://www.cnblogs.com/cquer-xjtuer-lys/p/11317736.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!