LeetCode (통합 구간)
7553 단어 데이터 구조
제목: 병합 구간
한 구간 의 집합 을 보 여 줍 니 다. 겹 치 는 모든 구간 을 합 쳐 주 십시오.
예시:
: [[1,3],[2,6],[8,10],[15,18]]
: [[1,6],[8,10],[15,18]]
: [1,3] [2,6] , [1,6].
생각:
1. 먼저 2 차원 배열 에서 각 1 차원 배열 의
[0]
에 따라 오름차 순 서 를 매 긴 다. 즉, start
에 따라 순 서 를 매 긴 다.2. 합병 조건 은 앞의 끝 이 뒤의 시작 보다 크다 는 것 이다. 그 다음 에 linkedList
를 중간 처리 대상 으로 하고 집합 이 비어 있 거나 조건 을 만족 시 키 지 않 으 면 집합 의 끝 에 가입 한다.4. 집합 이 비어 있 지 않 고 합병 조건 을 만족 시 킬 때 집합 중의 마지막 요 소 를 취하 여 원 치 와 합병 구간 end
의 최대 치 로 하여 금 이러한 구간 문 제 를 해결 하도록 한다.5. 집합 처리 완료, 첫 번 째 요 소 를 반복 해서 end
결과 배열 에 넣 기code
class Solution{
public int[][] merge(int[][] arr){
Arrays.parallelSort(arr,Comparator.comparingInt(x -> x[0]));
LinkedList<int[]> list = new LinkedList<>();
for(int i=0;i<arr.length;i++){
if(list.size()==0||list.getLast()[1]<arr[i][0]){
list.add(arr[i]);
}else{
list.getLast()[1] = Math.max(list.getLast()[1],arr[i][1]);
}
}
int[][] res = new int[list.size()][2];
int index = 0;
while(!list.isEmpty()){
res[index++] = list.removeFirst();
}
return res;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.