¿Puedes compartir tu algoritmo de encontrar la longitud del AP más largo en una matriz dada?

Supongo que AP significa progresión aritmética.

Daré el pseudocódigo.

int diff [];

int array [];

for (int i = 0; i <array.length; i ++) {

diff [i] = matriz [i + 1] -array [i];

}

// Ahora tenemos todas las diferencias en la matriz de diferencias.

// Veamos cuántas progresiones hay y su diferencia común y elemento inicial, tamaño.

int cuenta [];

int commDiff [];

int startIndex [];

for (int j = 0; j <diff.size; j ++) {

if (diff [j] == diff [j + 1]) {

// Incremento de conteo …

count [count.size-1] = count [count.size-1] +1;

}más{

// Inicio de una nueva verificación …

// Al menos será un AP con un término …

cuenta [cuenta.tamaño] = 1;

commDiff [commDiff.size] = 0;

// El índice comienza desde 0 en la matriz

startIndex [startIndex.size] = count.size-1;

}

// Ahora tenemos todos los detalles en matrices …

// Encuentra el más largo …

int más largo = cuenta [0];

para (int k = 0; k <cuenta [k]; cuenta ++) {

if (cuenta [k]> = más largo) {

// Si hay más de 1 más largo …

// Se tomará el último más largo.

índice más largo = k;

}

}

Ahora imprima todos los detalles …

Imprimir (“AP más largo:” + “, Longitud:” + más largo [índice más largo] + ”Diferencia común:” + commDiff [índice más largo] + ”Índice de inicio:” + índice de inicio [índice más largo]