找LeetCode上简单的题目来撑过30天啦(DAY25)今天国庆放假啦

好啦,今天国庆日,我不想逼迫自己咩,其实是我今天写不出来,写不出的题号是56. Merge Intervals,我一直觉得差一点点了,然後家里没有书桌可以用真的是很崩溃ㄟ,我晚上如果有时间再试试看写不写得出来吧,等等吃烧烤去
好啦,今天国庆日,我不想逼迫自己咩,其实是我今天写不出来,写不出的题号是56. Merge Intervals,我一直觉得差一点点了,然後家里没有书桌可以用真的是很崩溃ㄟ,我晚上如果有时间再试试看写不写得出来吧,等等吃烧烤去

目前的程序码

class Solution {
    public int[][] merge(int[][] intervals) {
        int[] temp = new int[2];
        Arrays.fill(temp, 0);
        List<List<Integer>> rtemp = new ArrayList<List<Integer>>();
        List<List<Integer>> rtemp2 = new ArrayList<List<Integer>>();
        int i,j,k=0,a=-1,b=-1;
        
        for ( i = 0; i < intervals.length; i++) {
            Arrays.sort(intervals[i]);
        }
        for ( i = 0; i < intervals.length; i++) {
            System.out.println(intervals[i][0] +" " +intervals[i][1]);
        }
        
        for(i=0;i<intervals.length;i++){
           if(rtemp2.contains(Arrays.asList(intervals[i][0],intervals[i][1]))){
           }else{
               rtemp2.add(Arrays.asList(intervals[i][0],intervals[i][1]));
           }
        }
       
        temp[0] = rtemp2.get(0).get(0);
        temp[1] = rtemp2.get(0).get(1);
        for(i=1;i<rtemp2.size();i++){
            a = rtemp2.get(i).get(0);
            b = rtemp2.get(i).get(1);
            if(a>temp[1]){
                rtemp.add(Arrays.asList(temp[0],temp[1]));
                temp[0] = rtemp2.get(i).get(0);
                temp[1] = rtemp2.get(i).get(1);
            }else if(a<=temp[1]&&b>=temp[1]){
                temp[1]= b;
            }
        }
 
        if(!rtemp.contains(Arrays.asList(temp[0],temp[1]))){
            rtemp.add(Arrays.asList(temp[0],temp[1]));
        }
        
        //rtemp.add(Arrays.asList(temp[0],temp[1]));
        int[][] result = new int[rtemp.size()][2];
        for(i=0;i<rtemp.size();i++){
           for(j=0;j<2;j++){
               result[i][0] = rtemp.get(i).get(0);
               result[i][1] = rtemp.get(i).get(1);
           }
        }
        return result;
    }
}

sort的部分还没处理好,之後再处理罗



二更)

我竟然解决啦

题目:56 标题:Merge Intervals 难度:Medium

Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input.

Example 1:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].

Example 2:
Input: intervals = [[1,4],[4,5]]
Output: [[1,5]]
Explanation: Intervals [1,4] and [4,5] are considered overlapping.

Constraints:
1 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti <= endi <= 104

成功的程序码

class Solution {
    public int[][] merge(int[][] intervals) {
        int[] temp = new int[2];
        Arrays.fill(temp, 0);
        List<List<Integer>> rtemp = new ArrayList<List<Integer>>();
        List<List<Integer>> rtemp2 = new ArrayList<List<Integer>>();
        int i,j,k=0,a=-1,b=-1;
        
        for ( i = 0; i < intervals.length; i++) {
            Arrays.sort(intervals, (x, y) -> x[0] - y[0]);
        }
        for ( i = 0; i < intervals.length; i++) {
            System.out.println(intervals[i][0] +" " +intervals[i][1]);
        }
        
        for(i=0;i<intervals.length;i++){
           if(rtemp2.contains(Arrays.asList(intervals[i][0],intervals[i][1]))){
           }else{
               rtemp2.add(Arrays.asList(intervals[i][0],intervals[i][1]));
           }
        }
       
        temp[0] = rtemp2.get(0).get(0);
        temp[1] = rtemp2.get(0).get(1);
        for(i=1;i<rtemp2.size();i++){
            a = rtemp2.get(i).get(0);
            b = rtemp2.get(i).get(1);
            if(a>temp[1]){
                rtemp.add(Arrays.asList(temp[0],temp[1]));
                temp[0] = rtemp2.get(i).get(0);
                temp[1] = rtemp2.get(i).get(1);
            }else if(a<=temp[1]&&b>=temp[1]){
                temp[1]= b;
            }
        }
 
        if(!rtemp.contains(Arrays.asList(temp[0],temp[1]))){
            rtemp.add(Arrays.asList(temp[0],temp[1]));
        }
        
        int[][] result = new int[rtemp.size()][2];
        for(i=0;i<rtemp.size();i++){
           for(j=0;j<2;j++){
               result[i][0] = rtemp.get(i).get(0);
               result[i][1] = rtemp.get(i).get(1);
           }
        }
        return result;
    }
}

DAY25心得
明天得再写一题了QQ


<<:  Day25 Android - MVP架构(简易)

>>:  图的最小产生树 - DAY 26

Day 30 - Make a Whack A Mole Game with Vanilla JS

前言 JS 30 是由加拿大的全端工程师 Wes Bos 免费提供的 JavaScript 简单应用...

SEO排名陷入撞墙期?也许你该试试「语义搜索引擎优化」!

作者:Welly SEO 编辑部 想做好Google SEO排名,除了熟知SEO是什麽之外,还必须充...

Unity与Photon的新手相遇旅途 | Day11-敌人攻击

今天的内容为该如何简单制作出一个自动攻击的敌人 ...

Day30 Try catch

当程序遇到问题或者是错误时,会中断整个软件的执行,造成程序无法继续往下执行,这时我们会使用例外处理,...

Day 17 - SVG 使用

唷呼~各位看官们今天最後一天上班日,明天就要放中秋连假了,欢呼吧,各位!下班後要搭乘大众运输返乡的...