**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
在这段代码中,我应该将数组中的所有重复值转换为-1,例如{1,3,3,3,3,2,6,4}转换为{1,3,4,6,4,-1,-1,-1}。我的代码不起作用,它可以将重复值转换为-1,但是它并没有把它们移到数组的右边。能请你帮忙吗。我想用java编程语言解决。下面是我的代码:
public static void main(String args[]) {
int [] arr = {4,2,3,5,4,2,12,4,4,3,2,3,4,5,6,7,9,8};
removeDuplicates(arr);
for(int i =0;i<arr.length;i++){
System.out.print(arr[i]+ " ");
}
}
public static void removeDuplicates(int [] x){
for(int i=0;i<x.length;i++){
for(int j=i+1;j<x.length;j++){
if(x[i]==x[j]){
x[j]=-1;
}
}
}
shift(x);
}
public static void shift(int[] x){
int tmp;
int count =0;
for(int i=0;i<x.length;i++){
if(x[i]==-1){
tmp=x[i];
x[i]=x[x.length-1-count];
x[x.length-1-count]=tmp;
count++;
}
}
}
1条答案
按热度按时间jq6vz3qz1#
移位方法的问题
例如,这将使x.length-1-count循环到数组的开头
{1、1、2}
第一个方法将返回{1,-1,2},然后shift将使其返回为{1,-1,2}。此外,使用IDE的调试器将有助于使您了解它是如何工作的
希望能有所帮助,祝你有美好的一天:)