我正在尝试合并一些重叠的“会议”时间段。
给定的时间段:
我的第一种方法是使用双重循环。然而,我的输出结果如下:
这句话的意思是:“在我的最终结果中省略了 {0, 1}。”
给定的时间段:
[{0, 1}, {3, 5}, {4, 8}, {10, 12}, {9, 10}]
合并区间:
[{0, 1}, {3, 8}, {9, 12}]
我的第一种方法是使用双重循环。然而,我的输出结果如下:
[{3, 8}, {9, 12}]
这句话的意思是:“在我的最终结果中省略了 {0, 1}。”
代码:
type Meeting struct {
startTime int
endTime int
}
func MergeIntervals(meetings []Meeting) []Meeting {
var mergedMeetings []Meeting
for i := 0; i < len(meetings); i++ {
for j := i + 1; j < len(meetings); j++ {
var first Meeting
var second Meeting
// the meeting with the earlier start time is the "first" meeting
if meetings[i].startTime < meetings[j].startTime {
first = meetings[i]
second = meetings[j]
} else {
first = meetings[j]
second = meetings[i]
}
if first.endTime >= second.startTime {
mergedMeetings = append(mergedMeetings, Meeting{first.startTime, second.endTime})
}
}
}
return mergedMeetings
}