간격[i] = [starti, endi]인 간격 배열이 주어지면 겹치는 모든 간격을 병합하고 입력의 모든 간격을 포괄하는 겹치지 않는 간격의 배열을 반환합니다.
예 1:
입력: 간격 = [[1,3],[2,6],[8,10],[15,18]]
출력: [[1,6],[8,10],[15,18]]
설명: 간격 [1,3]과 [2,6]이 겹치므로 [1,6]으로 병합합니다.
예시 2:
입력: 간격 = [[1,4],[4,5]]
출력: [[1,5]]
설명: 간격 [1,4]와 [4,5]는 겹치는 것으로 간주됩니다.
제약사항:
1 <= 간격.길이 <= 10^4
간격[i].길이 == 2
0 <= 시작 <= 끝 <= 10^4
원본페이지
public int[][] merge(int[][] intervals) { if(intervals.length <= 1){ return intervals; } Arrays.sort(intervals, (a,b)->{ return Integer.compare(a[0], b[0]); }); List<int[]> list = new ArrayList(); for(int i=1; i<intervals.length; i++){ if(intervals[i-1][1] >= 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()][]); } </p> <h2> 738. 모노톤 증가 숫자 </h2> <p>정수는 인접한 숫자 x와 y의 각 쌍이 x </p> <p>정수 n이 주어지면 n보다 작거나 같은 가장 큰 숫자를 단조롭게 증가하는 숫자로 반환합니다.</p> <p>예 1:</p> <p>입력: n = 10<br> 출력: 9<br> 예시 2:</p> <p>입력: n = 1234<br> 출력: 1234<br> 예시 3:</p> <p>입력: n = 332<br> 출력: 299</p> <p>제약사항:</p> <p>0 </p> <pre class="brush:php;toolbar:false"> 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<str.length(); i++){ char num = str.charAt(i); if(num < arr[i-1]){ int j; if(pos == -1){ j = 0; }else{ j = pos; } for(;j<arr.length; j++){ if(j==0||j==pos){ arr[j] = (char) (arr[j]-1); }else{ arr[j] = '9'; } } break; } else if(num > 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); }
위 내용은 LeetCode DayGreedy 알고리즘 5부의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!