本文共 2417 字,大约阅读时间需要 8 分钟。
下面直接贴代码:
import java.util.ArrayList;public class Solution3 { public void greedySelect(int num, int[] startPoint, int[] endPoint, boolean[] mark) { int[] len = new int[num]; int totalLength = 0; int maxTotalLength = 0; for(int i=0;ilist = new ArrayList<>(); for(int i=0;i backupList = new ArrayList<>(); for(int b=0;b = endPoint[backupList.get(0)] || endPoint[k] <= startPoint[backupList.get(0)]) flag = true; else flag = false; } else { for(int m=0;m = endPoint[backupList.get(m)] && endPoint[k] <= startPoint[backupList.get(m+1)])) flag = true; else flag = false; }else if(m == backupList.size()-1) { if(startPoint[k] >= endPoint[backupList.get(m)]) flag = true; else flag = false; }else { if(startPoint[k] >= endPoint[backupList.get(m)] && endPoint[k] <= startPoint[backupList.get(m+1)]) flag = true; else flag = false; } }else { flag = false; } } } if(flag == true) { totalLength += len[k]; used[k] = len[k]; mark[k] = true; } } if(totalLength > maxTotalLength) maxTotalLength = totalLength; totalLength = 0; for(int a=0;a list) { int max = 0; int index = 0; for(int i=0;i max && !list.contains(i)) { max = array[i]; index = i; } } return index; }}main函数:public class Main3 { public static void main(String[] args) { int[] startPoint = { 2,3,4,5,6,7,8,9,10,11}; int[] endPoint = { 3,5,7,6,9,8,12,10,13,15}; int len = startPoint.length; boolean[] mark = new boolean[len]; for(int i=0;i
转载地址:http://yahmi.baihongyu.com/