Created
August 4, 2019 00:34
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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