importjava.util.ArrayList;importjava.util.Arrays;publicclassCoverageCalculator{privateintlength;privateArrayListtowerList=newArrayList();CoverageCalculator(...
import java.util.ArrayList;
import java.util.Arrays;
public class CoverageCalculator {
private int length;
private ArrayList towerList = new ArrayList();
CoverageCalculator(int highwayLength){
this.length = highwayLength+1;
}
void addTower(int location, int range){
Tower tower = new Tower(location,range);
towerList.add(tower);
}
public int getCoverage(){
Tower[] towerArray = new Tower[towerList.size()+1];
towerList.toArray(towerArray);
//mergeSort(towerArray,0,towerArray.length-1);
Arrays.sort(towerArray,0,towerArray.length-1);
int start=0;
int end = towerArray[0].getTail();
int i =0;
int sum =0;
while (i
if((towerArray[i+1].getHead() )<= end){ ///这一行出现NonePointerException
if (towerArray[i+1].getTail() >= end){
end = towerArray[i+1].getTail();
if(end>this.length){
end = length;
}
i++;
}else{
i++;
}
}else{
sum += (end - start);
i++;
if(i
start = towerArray[i].getHead();
end = towerArray[i].getTail();
if(end>this.length){
end = length;
}
}
}
}
return sum;
}
}
展开