import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone{
//start 10:10 pm
public static List<point> pointArray = new ArrayList<point>(10);
public static TreeMap<Integer, point> pointMap = new TreeMap<Integer, point>();
public static void main(String[] args){
point p1 = new point(-2, -1);
point p2 = new point(0,2);
point p3 = new point(1,3);
point p4 = new point(3,6);
point p5 = new point(7,8);
point p6 = new point(0,6);
point p7 = new point(1,8);
//Ideone.addSegment(p1);
Ideone.addSegment(p2);
Ideone.addSegment(p3);
//Ideone.addSegment(p4);
//Ideone.addSegment(p5);
//Ideone.addSegment(p6);
//Ideone.addSegment(p7);
Ideone.findMaxSegment();
}
public static class point{
private static int start;
private static int end;
public point(int start, int end){
start = this.start;
end = this.end;
}
public static void setStart(int start){
point.start = start;
}
public static void setEnd(int end){
point.end = end;
}
}
public static void addSegment(point given){
//An array of points.
int len = 0;
// if the given point doesn't become part of existing point, add as new element
for(int i = 0; i < pointArray.size(); i++){
point temp = pointArray.get(i);
if((given.end >= temp.start) && (given.end <= temp.end)){
temp.setStart(given.start);
len = temp.end - temp.start;
System.out.println(temp.start+ " " + temp.end);
pointMap.put(len, temp);
}else if(given.start >= temp.end && given.start >= temp.start){
temp.setEnd(given.end);
len = temp.end - temp.start;
pointMap.put(len, temp);
System.out.println(temp.start+ " " + temp.end);
}else{
if(pointArray.get(i) == null){
point newPoint = new point(given.start,given.end);
pointArray.add(newPoint);
len = given.end - given.start;
pointMap.put(len, newPoint);
System.out.println(given.start+ " " + given.end);
}
}
}
//else extend the point.
}
public static void findMaxSegment(){
point maxLengthPoint = pointMap.lastEntry().getValue();
System.out.println(maxLengthPoint.start + " " + maxLengthPoint.end + " " + pointMap.lastEntry().getKey());
}
}
Приведенный выше код предназначен для следующей задачи: Даны начальные и конечные координаты одномерных отрезков. Найдите координаты самого длинного сегмента линии, который может быть сформирован из этих сегментов. Напишите две функции addSegment() и findMaxSegment().Как решить ошибку времени выполнения?
Я получаю сообщение об ошибке, как
Ошибка выполнения
Посмотрите в области видимости переменных. –
Не мог вас достать. Не могли бы вы объяснить больше. Как это исправить? – user3167973
Вы объявляете 'pointArray' и' pointMap' в основном, чтобы он не был распознан в рамках метода. – alfasin