Boa noite pessoa!
Estou com um trabalho aqui e estou com dificuldades para conseguir construir a logica.
O problema consiste em analisar uma matriz (que pode ser quadrada ou não) e retornar qual a maior sequencia (quantidade de elementos )que existe dentro dela.
Por exemplo.
Na matriz :
3 2 1
4 6 9
11 8 7
A maior sequencia de elementos é: 1,2,3,4
Neste outro exemplo seria:
20 21 22
16 17 23
15 25 24
A maior sequencia seria: 20, 21, 22 ,23, 24, 25
Minha duvida está sendo, que ao tentar ler e comparar as posições. eu não consigo comparar a posição ao lado e a de baixo ao mesmo tempo. Sem contar que no final da linha, o programa tenta ler uma posição que não existe na matriz.
Se puderem ajudar serei grato.
public static void main(String[] args) {
int m[][] = new int [][] {{3,2,1},
{4,6,9},
{11,8,7}};
ArrayList<Integer> sequencia = new ArrayList<>();
for (int i = 0; i < m.length; i++) {
for (int j = 0; j < m.length; j ++) {
if(m[i][j]+1 == m[i][j+1] ){
sequencia.add(m[i][j]);
}
}
}
for (Integer integer : sequencia) {
System.out.println(integer);
}
}
}
Ao realizar esse codigo, retorna esse erro:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at Test/application.Program.main(Program.java:26)