题解 | #主持人调度(二)#
主持人调度(二)
http://www.nowcoder.com/practice/4edf6e6d01554870a12f218c94e8a299
package main
import "sort"
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 计算成功举办活动需要多少名主持人
* @param n int整型 有n个活动
* @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
* @return int整型
*/
func minmumNumberOfHost( n int , startEnd [][]int ) int {
//辅助切片,用于提取每个给定输入的每个区间的开始时间和结束时间
var start, end []int
//切片初始化
start = make([]int, len(startEnd))
end = make([]int, len(startEnd))
for i := 0; i < len(startEnd); i++ {
start[i] = startEnd[i][0]
end[i] = startEnd[i][1]
}
//辅助切片排序
sort.Ints(start)
sort.Ints(end)
var res, j int
//循环查找满足条件的主持人:
for i := 0; i < n; i++ {
//某个活动i的开始时间晚于活动j 的结束时间,则主持人在i结束后可以主持j,不用新增主持人
if start[i] >= end[j] {
j++
} else {
//否则新增主持人
res++
}
}
return res
}