gpt4 book ai didi

java - 删除重复项放大错误

转载 作者:行者123 更新时间:2023-11-29 05:33:39 30 4
gpt4 key购买 nike

我正在尝试从数组中删除重复项。我所拥有的适用于大小为 10([11]) 的数组。然后我不得不将其扩展到 5000([5001])。我以为这会很简单。它编译但是当我运行它时它运行一个无限循环。我不确定它是否只是需要很长时间或某些东西不起作用。sort.sorting 有效。

public class work_on_it5
{
public static void main(String [] args)
{
int array [] = new int [5001];
int LB = 1;//declare the lower bound
int UB = 5000;//declare the upper bound
for(int x = 0; x < 4999; x++)
{
if(array[x]==array[x+1])
{
array[x+1] = (int)(Math.random()*50) + 1;
sort.sorting(array);
x=0;
}

}
sort.sorting(array);
for(int x = 0; x < 4999; x++)
{
System.out.println(array[x]);
}
//median(LB, UB, array);
//mean(array);
}

最佳答案

无限循环的原因是因为你设置了x=0;

for(int x = 0; x < 4999; x++)
{
if(array[x]==array[x+1])
{
array[x+1] = (int)(Math.random()*50) + 1;
sort.sorting(array);
x=0; //Here you are setting the value of x which is never changed resulting in infinite loop
}
}

在你的 for 循环中

所以每次进入for循环时,x的值都等于0

也是声明

int array [] = new int [5001];

因此数组的所有元素都将具有默认值 0 因此条件 if(array[x]==array[x+1]) 将始终为真然后上面的x 始终为 0 的情况将导致问题。改变逻辑!

旁注:-

最好使用array.length 而不是在for 循环中硬编码数组的长度。

关于java - 删除重复项放大错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269890/

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