对于这个特定问题,我试图删除排序数组中的冗余元素,并在数组末尾将它们全部替换为 0 。例如,如果我有一个由 int 元素组成的数组
1,3,3,4,4,5,6,6,7
我的输出数组应该是
1,3,4,5,6,7,0,0,0
我对这个问题的第一次尝试是创建一个交换器,以便在删除元素后将所有 0 推送到列表的末尾,但它似乎不会将零推送到列表的末尾。这是我的代码。
public void implode(int[] ary)
{
int swapper = -1;
int[] newARY = new int[ary.length];
int current = -1;
for (int i = 0; i < ary.length; i++)
{
if (current != ary[i])
{
newARY[i] = ary[i];
current = ary[i];
}
}
for (int i = 0; i < ary.length; i++)
{
if (ary[i] == 0)
{
if (ary[i + 1] != 0)
{
swapper = ary[i + 1];
ary[i] = swapper;
ary[i + 1] = 0;
}
}
}
ary = newARY;
for (int i = 0; i < newARY.length; i++)
{
System.out.print(newARY[i] + " ");
}
}
我用它测试的数组是,
int[] aryIn2 = {1, 1, 2, 3, 4, 4, 5, 6};
但是,当输出内爆阵列时,我收到了这个。
1 0 2 3 4 0 5 6
有什么我想念的吗?
提前致谢。
狐的传说
繁星淼淼
饮歌长啸
相关分类