题解 | #主持人调度#
主持人调度
http://www.nowcoder.com/practice/4edf6e6d01554870a12f218c94e8a299
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
* 计算成功举办活动需要多少名主持人
* @param n int整型 有n个活动
* @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间,startEnd[i][1]表示第i个活动的结束时间
* @return int整型
*/
public int minmumNumberOfHost (int n, int[][] startEnd) {
// write code here
int A[] = new int[n];
int k = 0;
//for(int i=0;i<n;i++) A[i] = Integer.MAX_VALUE;
Arrays.sort(startEnd, new Comparator<Object>() {//按列排序,按开始时间递增排
public int compare(Object o1,Object o2) {
int[] one = (int[]) o1;
int[] two = (int[]) o2;
if(one[0]>two[0]) return 1;
if(one[0]==two[0]) return 0;
else return -1;
}
});
A[0] = startEnd[0][1];
k=1;
int flag;
for(int i=1;i<n;i++){
flag = 0;
for(int j=0;j<k;j++){
if(A[j]<=startEnd[i][0]){
A[j]=startEnd[i][1];
// Arrays.sort(A);
flag = 1;
break;
}
}
if(flag==0){
A[k] = startEnd[i][1];
// Arrays.sort(A);
k++;
}
}
return k;
}
}