leetcode(리트코드)56-Merge Intervals
leetcode(리트코드)56-Merge Intervals
leetcode 56 - Merge Intervals 문제입니다.
1. 문제
https://leetcode.com/problems/merge-intervals/
2. Input , Output
3. 분류 및 난이도
Medium 난이도 문제입니다.
leetcode Top 100 Liked 문제입니다.
4. 문제 해석
- 구간의 시작과 끝이 주어집니다. 겹치는 구간은 합쳐버려서 구간을 다시 리턴합니다.
5. code
python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution:
def merge(self, intervals: List[List[int]]) -> List[List[int]]:
result =[]
intervals.sort()
index = 0
while index < len(intervals):
temp = []
start = intervals[index][0]
end = intervals[index][1]
j = index+1
while j < len(intervals) and end >= intervals[j][0] :
end = max(intervals[j][1],end)
index = j
j += 1
temp.append(start)
temp.append(end)
result.append(temp)
index+=1
return result
c++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Solution {
public:
vector<vector<int>> merge(vector<vector<int>>& intervals) {
vector<vector<int>> result;
sort(intervals.begin(),intervals.end());
for(int i = 0; i<intervals.size(); ++i)
{
vector<int> temp;
int start = intervals[i][0];
int end = intervals[i][1];
int j = i+1;
while(j<intervals.size() && end >= intervals[j][0])
{
end = max(intervals[j][1],end);
i=j;
++j;
}
temp.push_back(start);
temp.push_back(end);
result.push_back(temp);
}
return result;
}
};
6. 결과 및 후기, 개선점
94%
This post is licensed under CC BY 4.0 by the author.