首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定一个固定长度的整数数组arr,复制每个出现的零,将它们移位到right - leetCode

给定一个固定长度的整数数组arr,复制每个出现的零,将它们移位到数组的末尾,同时保持非零元素的相对顺序。

首先,我们可以使用两个指针来解决这个问题。一个指针用于遍历数组,另一个指针用于指示零的位置。

算法如下:

  1. 初始化一个变量count为0,用于记录数组中的零的个数。
  2. 遍历数组,如果当前元素为零,则count加1。
  3. 继续遍历数组,如果当前元素不为零,则将其移动到指针所指向的位置,并将指针后移一位。
  4. 最后,将数组末尾count个位置上的元素设置为零。

以下是实现该算法的JavaScript代码:

代码语言:txt
复制
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],即将所有的零移动到数组的末尾,并保持非零元素的相对顺序。

腾讯云相关产品和产品介绍链接地址:

以上是一个简单的解决方案,根据具体情况和要求,可能会有其他更高效的实现方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券