我正在尝试创建一个程序来决定一组课程是否存在冲突时间,而不是那些课程则创建最大的课程子集。我的想法是创建一个图表,其中节点是连接节点冲突的路线和边缘。然后,我将为每个节点着色,没有两个相邻的节点具有相同的颜色。然后我会选择课程的子集作为颜色最频繁的课程。我知道有很多不同的方法来表示Java中的图形,但是,我之前从未创建过一个,并且我想知道在我的情况下使用哪种方法会很好。或者是否有更有效的方法解决这个问题?
答案 0 :(得分:0)
class Course {
double startTime, endTime; //24-hour times
String color;
LinkedList<Course> conflictingCourses;
boolean conflictsWith(Course otherCourse) {
if (this.startTime > otherCourse.endTime || otherCourse.startTime > this.endTime)
return false;
return true;
}
}
浏览所有对的课程,看看哪些对返回true for conflictWith。然后为它们着色。