牛客网: BM96
题目: 一个主持人只能参加一个活动,至少需要多少主持人
思路: 对start, end排序从小到大;初始化指针l, r = 0, 0;start[r]<= end[l]时需要累加人数同时r++,否则l++,r++同时移动;直至不再满中l<n && r < n文章来源:https://www.toymoban.com/news/detail-731310.html
代码:文章来源地址https://www.toymoban.com/news/detail-731310.html
// go
package main
import "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 here
start, 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 := 0
for l, r := 0, 0; l < n && r < n; {
if start[r] < end[l] {
r++
total++
} else {
l++
r++
}
}
return total
}
到了这里,关于算法 主持人调度-(双指针+贪心)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!