Ajuda com vetor não aceitar numeros repetidos

Pessoal ,sou iniciante e não estou conseguindo fazer com que um vetor nao aceite que o usuario digite um numero que ja contem no vetor … ja tentei de varias formas , alguem poderia me dar uma ajuda ?

import java.util.Scanner;
public class Vetor13 {
	public static void main(String[] args) {
      int[] x = new int[5];
      
      int i , j = 0;
        
         for(i = 0 ; i < x.length;i++){
        	 for(j = 0 ; j <= x.length;j++){
        		   do{
               	     System.out.print("Insira o "+(i+1)+ " - numero : ");
            	     x[i] = new Scanner(System.in).nextInt();
        		   }while(x[j] == x[i]);
            	     
        		 
        	 }
         }
 
	}
}

Para ficar mais simples, faça um método que simplesmente percorra os elementos do array e informe se existe um número igual ao passado por parâmetro. Algo assim:

public boolean contem(int[] x, int n) {
   for (int i = 0; i < x.length; i++) {
      if (n == x[i]) {
         return true;
      }
   }
   return false;
}

Aí você percorre os elementos do array e, se não houver repetido (vc sabe pelo método contém), vc insere. Se não quiser implementar o método contem, como sugeri, leia sobre a classe Arrays, ela contém métodos que já contém esta lógica.

int[] vetor = new int[5]; boolean[] dp = new boolean[9999999]; for(int i = 0; i &lt; 5; ){ leia numero; if(!dp[numero]){ dp[numero] = true; vetor[i++] = numero; } }

Funciona de numeros >= 0 && numeros < 9999999;

Cara, tem tanto tempo que não vejo um algoritmo com complexidade O(n^3). :smiley:

Vc ta precisando estudar mais algoritmos… :slight_smile:

Boa tarde!
Também sou novo no seguimento e tenho uma dúvida parecida (se não igual), mas ainda não domino a linguagem Java. O exercício esta em portugol:

algoritmo “Megasena”
var
vet_megasena: vetor [1…6] de inteiro
nome, continua: caracter
i, cont, num, k:inteiro
inicio
para i de 1 ate 6 faca
escreva("Entre com uma dezena: ")
repita
leia(vet_megasena[i])
se (vet_megasena[i] < 1) ou (vet_megasena[i] > 60) entao
escreval(“Valor invalido!”)
escreva("Entre com uma dezena: ")
fimse
ate (vet_megasena[i] >= 1) e (vet_megasena[i] <= 60)
fimpara

Nesse trecho do código, gostaria de adicionar a condição que ao digitar um número já existente ele mande a mensagem: “Número já digitado!”. Como posso fazer?

Desde já agradeço pela atenção!

Atenciosamente,

Diego