gpt4 book ai didi

java - 如果数组中有零,如何将数组中的元素向左移动 1?

转载 作者:行者123 更新时间:2023-12-01 17:51:36 25 4
gpt4 key购买 nike

好吧,所以我必须遍历一个数组,如果数组中有零,那么我必须将零右侧的元素向左移动 1。

例如,给定:

[3,0,1,2]

调用该方法后我应该得到:

[3,1,2,0]

这就是我到目前为止所拥有的;

public int[] shiftArray(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] == 0) {
arr[i] = arr[i + 1];
}
arr[arr.length - 1] = 0;
}
return null;
}

我不知道如何将零右侧的所有元素向左移动 1,而不仅仅是零旁边的元素。

最佳答案

public int[] shiftArray(int[] arr)
{
int shift = 0;

for (int i = 0; i < arr.length; i++) {
if (arr[i]==0) {
shift++; // if you only want to handle the 1st zero, use shift = 1
} else if (shift>0) {
arr[i-shift] = arr[i];
}
}
for (int i = arr.length - shift; i < arr.length; i++) {
arr[i] = 0;
}
return null;
}

关于java - 如果数组中有零,如何将数组中的元素向左移动 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49501676/

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