题解 | #主持人调度(二)#
主持人调度(二)
https://www.nowcoder.com/practice/4edf6e6d01554870a12f218c94e8a299
using System; using System.Collections.Generic; using System.Linq; class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 计算成功举办活动需要多少名主持人 * @param n int整型 有n个活动 * @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间 * @return int整型 */ public int minmumNumberOfHost (int n, List<List<int>> startEnd) { var starts = startEnd.Select(item => item[0]).OrderBy(x => x).ToList(); var ends = startEnd.Select(item => item[1]).OrderBy(x => x).ToList(); int max = 0; int cur = 0; int i = 0, j = 0; while(i < startEnd.Count && j < startEnd.Count){ if(starts[i] < ends[j]){ cur++; i++; } else if(starts[i] == ends[j]){ i++; j++; continue; } else{ cur--; j++; } max = Math.Max(cur, max); } return max; } }