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]); }); Listlist = 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: 299Kekangan:
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; iarr[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); } Atas ialah kandungan terperinci Algoritma LeetCode DayGreedy Bahagian 5. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!