package com.raylew.algorithm.book1;
import java.util.Arrays;
public class 最大兼容活动集 {
public static void main(String[] args) {
int[] starts = {1, 3, 0, 5, 3, 5, 6, 8, 8, 2, 12};
int[] ends = {4, 5, 6, 7, 9, 9, 10, 11, 12, 14, 16};
Activity[] acts = new Activity[11];
for (int i = 0; i < 11; i++) {
Activity act = new Activity(i + 1, starts[i], ends[i]);
acts[i] = act;
}
Arrays.sort(acts);
String res = acts[0].getIndex() + "";
int k = 0;
for (int i = 0; i < 11; i++) {
if (acts[i].getStart() > acts[k].getEnd()) {
k = i;
res += ("," + acts[i].getIndex());
}
}
System.out.println(res);
}
}
class Activity implements Comparable {
private Integer index;
private Integer start;
private Integer end;
public Activity(Integer index, Integer start, Integer end) {
super();
this.index = index;
this.start = start;
this.end = end;
}
public Integer getIndex() {
return index;
}
public void setIndex(Integer index) {
this.index = index;
}
public Integer getStart() {
return start;
}
public void setStart(Integer start) {
this.start = start;
}
public Integer getEnd() {
return end;
}
public void setEnd(Integer end) {
this.end = end;
}
@Override
public int compareTo(Object o) {
Activity act = (Activity) o;
return this.end - act.end;
}
}