Как найти все наборы из 4 или более коллинеарных точек - PullRequest
0 голосов
/ 07 апреля 2019

Я пытаюсь найти все наборы из 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++;
}
...