java贪心算法活动安排
时间: 2023-11-20 14:57:47 浏览: 95
贪心算法活动安排问题
5星 · 资源好评率100%
根据引用和引用的描述,Java贪心算法可以用于活动安排问题。下面是Java贪心算法活动安排的实现步骤:
1.定义一个Activity类,包含开始时间start和结束时间end两个属性。
2.将所有活动按照结束时间从小到大排序。
3.定义一个ArrayList集合result,用于存储最大的两两相容的活动子集A。
4.将第一个活动加入result集合。
5.遍历所有活动,如果当前活动的开始时间大于等于result集合中最后一个活动的结束时间,则将当前活动加入result集合。
6.返回result集合。
下面是Java代码实现:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ActivityArrange {
public static class Activity {
int start;
int end;
public Activity(int start, int end) {
this.start = start;
this.end = end;
}
}
public static List<Activity> arrange(List<Activity> activities) {
List<Activity> result = new ArrayList<>();
if (activities == null || activities.size() == 0) {
return result;
}
// 按照结束时间从小到大排序
Collections.sort(activities, new Comparator<Activity>() {
@Override
public int compare(Activity o1, Activity o2) {
return o1.end - o2.end;
}
});
// 将第一个活动加入result集合
result.add(activities.get(0));
// 遍历所有活动,如果当前活动的开始时间大于等于result集合中最后一个活动的结束时间,则将当前活动加入result集合
for (int i = 1; i < activities.size(); i++) {
Activity lastActivity = result.get(result.size() - 1);
Activity currentActivity = activities.get(i);
if (currentActivity.start >= lastActivity.end) {
result.add(currentActivity);
}
}
return result;
}
}
```
阅读全文