Dada una serie de intervalos de tiempo de reunión que constan de horas de inicio y finalización [s1, e1], [s2, e2], …, determine si una persona podría asistir a todas las reuniones.
Por ejemplo,
Dado [ [0, 30], [5, 10], [15, 20] ],
falso retorno.
Solución Java
Si una persona puede asistir a todas las reuniones, no debe haber superposiciones entre las reuniones. Después de ordenar los intervalos, podemos comparar el final actual y el próximo comienzo.
public boolean canAttendMeetings(Interval[] intervals) { Arrays.sort(intervals, new Comparator<Interval>(){ public int compare(Interval a, Interval b){ return a.start-b.start; } }); for(int i=0; i<intervals.length-1; i++){ if(intervals[i].end>intervals[i+1].start){ return false; } } return true; } |