作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,所以我必须遍历一个数组,如果数组中有零,那么我必须将零右侧的元素向左移动 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/
我是一名优秀的程序员,十分优秀!