Я пытаюсь найти все наборы из 4 или более коллинеарных точек из большего набора точек в Java.
Мой оригинальный подход состоял в том, чтобы создать массив парных чисел, сохраняя наклоны между одной точкой вмассив и все остальные точки.После сортировки массива любое появление 3 или более повторяющихся уклонов будет означать, что я нашел правильный набор.
У меня возникают трудности с поиском наборов из 3 или более дубликатов двойных чисел в моем массиве уклонов, однако безиметь очень грязный кодЯ не могу использовать структуры данных, кроме массивов, а также.У кого-нибудь есть какие-либо предложения о том, как я мог бы пойти по этому поводу?
Point[] points = getPoints();
for (int p = 0; p < points.length; points++)
{
Double[] slopes = getSlopes(points, p);
mergeSort(slopes);
double currentSlope = slopes[0];
int numDup = 1;
for (int i = 1; i < slopes.length; i++)
if (currentSlope != slopes[i]);
{
if (numDup >= 3)
// store value of currentSlope somewhere...
currentSlope = slopes[i];
numDup = 1;
}
else
numDup++;
}