题解 |简单易懂! #合并k个已排序的链表#(Java)

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

这题主要是时间要少,然后节点的数据不大,我们可以用数组记录下每个节点val值-1000--1000出现的次数
数组下标是结点的值,数组的值是这个结点的值出现的次数。然后依次用节点链接起来就行了。
import java.util.*;
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) {
 *         val = x;
 *         next = null;
 *     }
 * }
 */
public class Solution {
    public ListNode mergeKLists(ArrayList<ListNode> lists) {
        ArrayList<ListNode> list = new ArrayList<>();
        int []valarry = new int[2002];
        for(int i =0;i<lists.size();i++){            
            ListNode hands = lists.get(i);
            while(true){
                if(hands == null)
                    break;
                if(hands.val<0){
                   valarry[0-hands.val]++; 
                }
                if(hands.val==0){
                   valarry[1001]++; 
                }
                if(hands.val>0){
                    valarry[hands.val+1001]++;
                }                
                hands = hands.next;                
            }
        }
        ListNode node = new ListNode(1001);
        ListNode hand = node;     
        for(int i =1000;i>=1;i--){
            if(valarry[i]!=0){
                for(int j=0;j<valarry[i];j++){                  
                    ListNode next = new ListNode(0-i); 
                    node.next = next;
                    node = node.next;                                       
                }
            }
        }
        for(int i =1001;i<valarry.length;i++){
            if(valarry[i]!=0){
                for(int j=0;j<valarry[i];j++){
                    ListNode next = new ListNode(i-1001); 
                    node.next = next;
                    node = node.next;                                       
                }
            }
        }
         return hand.next;
    }
     
}


空间还有很大的优化,时间也还能再优化,这题比较水,就懒得再做了,哈哈哈。反正ac了-0-

全部评论

相关推荐

10-24 13:36
门头沟学院 Java
Zzzzoooo:更新:今天下午有hr联系我去不去客户端,拒了
点赞 评论 收藏
分享
最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务