Esta solución Java [matemática] O (n ^ {2}) [/ matemática] es suficiente, aunque no evita la visita de puntos de la misma línea más de una vez.
public int maxPoints (puntos [] puntos) { if (puntos == nulo || puntos.length == 0) devuelve 0; if (puntos.longitud == 1) retorno 1; int max = 0; for (int i = 0; i <puntos.length-1; i ++) { int currentPoints = 1; int dup = 0; HashMap map = new HashMap (); para (int j = i + 1; j currentPoints + dup) currentPoints = map.get (pendiente); } currentPoints = currentPoints + dup; if (max <currentPoints) max = currentPoints; } retorno max; }