Rumah >Java >javaTutorial >Algoritma LeetCode DayGreedy Bahagian 5

Algoritma LeetCode DayGreedy Bahagian 5

王林
王林asal
2024-07-18 20:38:301053semak imbas

56. Selang Gabungan

Memandangkan tatasusunan selang dengan selang[i] = [starti, endi], gabungkan semua selang bertindih dan kembalikan tatasusunan selang tidak bertindih yang meliputi semua selang dalam input.

Contoh 1:

Input: selang = [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]
Penjelasan: Memandangkan selang [1,3] dan [2,6] bertindih, gabungkannya menjadi [1,6].
Contoh 2:

Input: selang = [[1,4],[4,5]]
Output: [[1,5]]
Penjelasan: Selang [1,4] dan [4,5] dianggap bertindih.

Kekangan:

1 <= selang.panjang <= 10^4
selang[i].panjang == 2
0 <= mula <= tamat <= 10^4
Halaman Asal

    public int[][] merge(int[][] intervals) {
        if(intervals.length <= 1){
            return intervals;
        }
        Arrays.sort(intervals, (a,b)->{
            return Integer.compare(a[0], b[0]);
        });

        List list = new ArrayList();
        for(int i=1; i= intervals[i][0]){
                intervals[i][0] = intervals[i-1][0];
                intervals[i][1] = Math.max(intervals[i-1][1], intervals[i][1]);

            } else{
                list.add(intervals[i-1]);
            }
        }
        list.add(intervals[intervals.length-1]);
        return list.toArray(new int[list.size()][]);
    }




738. Angka Bertambah Monoton

Integer mempunyai digit peningkatan monoton jika dan hanya jika setiap pasangan digit bersebelahan x dan y memenuhi x <= y.

Diberi integer n, kembalikan nombor terbesar yang kurang daripada atau sama dengan n dengan angka monoton bertambah.

Contoh 1:

Input: n = 10
Keluaran: 9
Contoh 2:

Input: n = 1234
Output: 1234
Contoh 3:

Input: n = 332
Keluaran: 299

Kekangan:

0 <= n <= 10^9

    public int monotoneIncreasingDigits(int n) {
        if(n<10){
            return n;
        }
        String str = Integer.toString(n);
        char[] arr = new char[str.length()];
        arr[0] = str.charAt(0);

        int pos = -1;
        for(int i=1; i arr[i-1]){
                pos = i;
            }
            arr[i] = str.charAt(i);
        }
        if(arr[0] <=0){
            // cost space by using String
            str = new String(arr, 1,arr.length);
        }else{
            str = new String(arr);
        }
        return Integer.valueOf(str);
    }




Image description

Atas ialah kandungan terperinci Algoritma LeetCode DayGreedy Bahagian 5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn