给定一个固定长度的整数数组arr,复制每个出现的零,将它们移位到数组的末尾,同时保持非零元素的相对顺序。
首先,我们可以使用两个指针来解决这个问题。一个指针用于遍历数组,另一个指针用于指示零的位置。
算法如下:
以下是实现该算法的JavaScript代码:
function moveZeros(arr) {
let count = 0;
for (let i = 0; i < arr.length; i++) {
if (arr[i] === 0) {
count++;
} else {
arr[i - count] = arr[i];
}
}
for (let i = arr.length - count; i < arr.length; i++) {
arr[i] = 0;
}
return arr;
}
const arr = [1, 0, 2, 0, 3, 4];
console.log(moveZeros(arr));
运行以上代码,输出结果为[1, 2, 3, 4, 0, 0]
,即将所有的零移动到数组的末尾,并保持非零元素的相对顺序。
腾讯云相关产品和产品介绍链接地址:
以上是一个简单的解决方案,根据具体情况和要求,可能会有其他更高效的实现方式。
领取专属 10元无门槛券
手把手带您无忧上云