leetcode hot 15

解题思路:思路还是比较清晰,先按照起始位置排序,然后再逐个遍历,根据起始位置与前一个结束位置进行比较,两种情况进行处理即可(这边代码比较麻烦因为前面list泛型用错了)

import java.util.Arrays;
class Solution {
    public int[][] merge(int[][] intervals) {
        List<List<Integer>> list = new ArrayList<>(); 
        Arrays.sort(intervals, (int[] a,int[] b)->{
            return Integer.compare(a[0], b[0]);
        });
        int left = intervals[0][0];
        int right = intervals[0][1];
        for(int i=0;i<intervals.length;i++){
            if(intervals[i][0]>right){
                int[] l = {left,right};
                list.add(Arrays.asList(left, right));
                left = intervals[i][0];
                right = intervals[i][1];
            }else{
                right = Math.max(right,intervals[i][1]);
            }
        }
        list.add(Arrays.asList(left, right));
        int[][] res = new int[list.size()][2];
        for(int i=0;i<list.size();i++){
            res[i][0] = list.get(i).get(0);
            res[i][1] = list.get(i).get(1);
        }
        return res;
    }
}
posted @   kukudev  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示