一天中,要进行N个面试,它们的时间分别为[B[i], E[i]],分别表示面试的开始时间跟面试的结束时间。这N个面试安排在若干个面试点进行,不同的面试在同一个时间不能被安排在同一个面试点。现在要求出至少需要多少个面试点。
仍然先对面试数组排序, 然后遍历面试数组, 每遇到一个 B, color +1, 并维护全局最大 color 数; 每遇到一个 E, color 数减一. 返回全局最大 color 值。
int nColorUsing = 0, nMaxColor = 0;
for(int i = 0; i < 2 * n; ++i) {
if(TimePoints[i].type == "Begin") {
nColorUsing++;
if(nColorUsing > nMaxColor) nMaxColor = nColorUsing;
}else nColorUsing--;
}