gpt4 book ai didi

java - 我在打印数组中的元素时遇到问题,以便任何两个重复的元素出现一次

转载 作者:太空宇宙 更新时间:2023-11-04 09:11:20 25 4
gpt4 key购买 nike

问题是找到数组中数字的不同出现次数,以便出现两次的任何元素仅打印一次。


public class ICT_Qoestions_34 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the Index of Numbers");
int n = input.nextInt();
int[] myList = RandomNumber(n);

System.out.println("Distinct Numbers"); here I called a method that has a parameter of arrays coming from the RandomNumber() method.
DistinctNumbers(myList);

}

// Generating Random Numbers And Pouplating them in an Array whose Rerference is myList

//Question 1
public static int[] RandomNumber(int n) {
if (n < 0) {
System.out.println("PLEASE Enter Positive Number!");
}
int[] myList = new int[n];
for (int i = 0; i < n; i++) {

int Values = (int) ((90 * Math.random()) + 10);
System.out.print(Values + "\t");
for (int j = i; j < n; j++) {

myList[j] = Values;

}

}
return myList;
}

上述方法运行良好,并生成一个包含 n 个索引随机数的数组。

问题出现在这个方法中,因为它没有完成我期望的工作,而且我无法追踪我的错误。

public static void DistinctNumbers(int[] myList) {
for (int j = 0; j < myList.length; j++) {
int key = myList[j];
int Occurance = 1;
for (int i = 0; i < myList.length; i++) {
if (myList[i] == myList[j] && i != j)
Occurance++;
}

如果一个数字的出现次数为=1,没问题,但是当它>1时,我们应该小心,因为我们的订单只打印一次。所以我这样做了......

                if (Occurance== 1) 
System.out.println(myList[j] + "\t");
else if(Occurance>1){
for (int k=0; k<j;k++){

如果第 j 个索引之前的数组元素与第 j 个索引的元素匹配,我们将中断循环以避免控制台中的任何重复打印。

                if (myList[k]==key)
break;
else if(myList[k]!=key){

如果数组的元素直到第 j 个索引都与第 j 个索引的元素不匹配,我们打印该不同的数字,然后中断循环以避免在控制台中重复打印。我相信这是有效的,因为如果在第 3 个和第 15 个索引中找到示例 15,则将打印第三个索引并跳转到第 15 个索引。

                    System.out.println(myList[j] + "\t");
break;
}
}

}
}

}
}

但这似乎不是结果,我追踪时什么也没发现......

最佳答案

那么你应该考虑稍微改变一下你的算法。具有出现次数的 For 循环不起作用。你最好的方法是检查生成的随机数是否存在于数组中。

while(isElementExist(generatedNum,arr)) {
generatedNum = (int) ((90 * Math.random()) + 10);
}
// insert into array now.

关于java - 我在打印数组中的元素时遇到问题,以便任何两个重复的元素出现一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59642790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com