Criar método imprime (desafio hackerhank diagonalDifference )

1 resposta
D

Eaí pessoal, blz?

Estou aprendendo com os desafios do HackerHanck, e nesse desafio ele soma as diagonais de cada vetor e depois subtrai as duas diagonais. até aí tudo bem, porém eu queria criar um método para imprimir as diagonais, como nos testes tenho que criar umas listas, mas eu gostaria de criar um método imprime, se alguém conseguir ajudar eu acradeço!

public class DiagonalDifference {

public static int diagonalDifference(List<List<Integer>> arr) {
	
	int ltr = 0, rtl = 0;		
		
	int lastRight = arr.size() - 1;
	
	for(int i = 0; i < arr.size(); i++) {
		ltr += arr.get(i).get(i);
		rtl += arr.get(i).get(lastRight - i);					
	}
	return Math.abs(ltr - rtl);		
}

/* Testing to ensure loop logic is correct
 * 
List<Integer> leftToRightArr = new ArrayList<Integer>();
List<Integer> rightToLeftArr = new ArrayList<Integer>();

int topRight = arr.size() - 1;
for(int i = 0; i < arr.size(); i++) {
	leftToRightArr.add( arr.get(i).get(i) );
	rightToLeftArr.add( arr.get(i).get(topRight - i) );
}

System.out.println("LtoR diagonal:  " + leftToRightArr.toString());
System.out.println("RtoL diagonal:  " + rightToLeftArr.toString());
*/

public static void imprime() {
	
	
	
}

public static void main(String[] args) {
	List<List<Integer>> vetorLista = Arrays.asList(
			Arrays.asList(7, 5, 1),
			Arrays.asList(16, 8, 1),
			Arrays.asList(16, 8, 1));
	
	//int result = diagonalDifference(vetorLista);
	System.out.println(diagonalDifference(vetorLista));
	//diagonalDifference(vetorLista);
}

}

1 Resposta

darlan_machado

Basicamente, o que define uma diagonal principapl, em uma matriz quadrada (vetor de duas dimensões em que cada dimensão tem exatamente o mesmo número de posições) é a igualdade do índice. A diagonal secundária é definida quando a soma dos índices é igual ao tamanho da dimensão - 1.
A grosso modo:

0    1    2    3    4
0    A    T    R    N    M
1    X    V    H    J    K
2    D    L    U    O    I
3    E    G    4    Y    0
4    B    Q    7    C    Z

Conforme pode-se perceber, os elementos A, V, U, Y e Z estão na diagonal principal.
Os elementos M, J, U, G e B estão na diagonal secundária.

Com isso, creio que seja muito fácil dizer como imprimir, né?

Criado 31 de outubro de 2019
Ultima resposta 31 de out. de 2019
Respostas 1
Participantes 2