Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Dado um vetor não ordenado de inteiros, encontre a maior sequência consecutiva em ordem crescente - Exercícios Resolvidos de JavaQuantidade de visualizações: 710 vezes |
Pergunta/Tarefa: Dado o vetor: // vamos declarar um vetor de inteiros não ordenado int valores[] = {8, 3, 7, 1, 6, 2, 4, 9}; A maior sequencia consecutiva é: 4 Em todas as entrevistas que este desafio foi apresentado, o candidato foi informado de que poderia ordenar os valores antes de calcular a sequência consecutiva, o que torna o problema menos complicado. A solução apresentada a seguir usa esta abordagem: package estudos; import java.util.Arrays; public class Estudos{ public static void main(String[] args) { // vamos declarar um vetor de inteiros não ordenado int valores[] = {8, 3, 7, 1, 6, 2, 4, 9}; // o primeiro passo é ordenar o vetor em ordem crescente Arrays.sort(valores); int maiorSequencia = 1; // guarda a maior sequencia int sequenciaAtual = 1; // guarda a sequencia atual // agora percorremos o vetor começando no segundo elemento // e indo até o último for (int i = 1; i < valores.length; i++) { // o elemento atual é diferente do elemento anterior? if(valores[i] != valores[i - 1]){ // o elemento atual é maior que o seu sucessor? if(valores[i] == (valores[i - 1] + 1)){ sequenciaAtual++; // incrementa a sequencia atual } else{ // ajusta a maior sequencia maiorSequencia = Math.max(maiorSequencia, sequenciaAtual); sequenciaAtual = 1; // sequencia atual volta a ser 1 } } } // mostra o resultado: System.out.println("A maior sequencia consecutiva é: " + Math.max(maiorSequencia, sequenciaAtual)); } } |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Java - Como usar null em Java VB.NET - Como adicionar horas à data e hora atual em VB.NET usando a função AddHours() da classe DateTime |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |