Skip to content

Instantly share code, notes, and snippets.

@wagfim
Created August 4, 2019 00:34
Show Gist options
  • Save wagfim/7d366ba441797588460540111bfdba79 to your computer and use it in GitHub Desktop.
Save wagfim/7d366ba441797588460540111bfdba79 to your computer and use it in GitHub Desktop.
Faça uma método que receba uma matriz e retorne o número das colunas que possuem todos os elementos iguais
public class Questao5 {
public static void main(String[] args) {
int[][] matriz = {
{1,2,3,9,10},
{1,7,8,9,10},
{1,0,0,9,10},
{1,3,8,9,10}
};
int[] colunasComElementosIguais = retornaNumeroColunasIguais(matriz);
exibirVetor(colunasComElementosIguais);
}
public static int[] retornaNumeroColunasIguais(int[][] matriz) {
/* 1º passo: conte quantas colunas iguais existem na matriz */
int contador = 0;
for (int i = 0; i < matriz[0].length; i++) {
int[] coluna = extrairColuna(matriz, i);
boolean statusColuna = checarSequencia(matriz, coluna);
if(statusColuna) {
contador++;
}
}
/* 2ª passo: Agora que já se sabe quantas colunas iguais existem, crie um vetor com esse tamanho */
int[] numeracaoColunasIguais = new int[contador];
int indiceAux = 0; //o vetor pode ser pequeno, então precisa ser percorrido com carinho
/* 3ª passo: Agora ao invés troque o contador++ por uma inserção no vetor */
for (int i = 0; i < matriz[0].length; i++) {
int[] coluna = extrairColuna(matriz, i);
boolean statusColuna = checarSequencia(matriz, coluna);
if(statusColuna) {
numeracaoColunasIguais[indiceAux++] = i;
}
}
return numeracaoColunasIguais;
}
public static int[] extrairColuna(int[][] matriz, int numeroColuna) {
int[] coluna = new int[matriz.length];
for (int i = 0; i < matriz.length; i++) {
coluna[i] = matriz[i][numeroColuna];
}
return coluna;
}
public static boolean checarSequencia(int[][] matriz, int[] coluna) {
int sequencia = 1;
for (int i = 0; i < 1; i++) {
for (int j = i+1; j < coluna.length; j++) {
if (coluna[i] == coluna[j])
sequencia++;
else
break;
if (sequencia == matriz.length)
return true;
}
}
return false;
}
public static void exibirVetor(int[] vetor) {
for (int i = 0; i < vetor.length; i++) {
System.out.print(vetor[i]+", ");
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment