小程序游戏免广告神器百度seo词条优化
牛客网: BM96
题目: 一个主持人只能参加一个活动,至少需要多少主持人
思路: 对start, end排序从小到大;初始化指针l, r = 0, 0;start[r]<= end[l]时需要累加人数同时r++,否则l++,r++同时移动;直至不再满中l<n && r < n
代码:
// gopackage mainimport "sort"// import "fmt"/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 计算成功举办活动需要多少名主持人* @param n int整型 有n个活动* @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间* @return int整型*/
func minmumNumberOfHost( n int , startEnd [][]int ) int {// write code herestart, end := make([]int, n), make([]int, n)for i := 0; i < n; i++ {start[i] = startEnd[i][0]end[i] = startEnd[i][1]}sort.Ints(start)sort.Ints(end)total := 0for l, r := 0, 0; l < n && r < n; {if start[r] < end[l] {r++total++} else {l++r++}}return total
}