当前位置: 首页 > article >正文

1.快慢指针-力扣-283-移动零

题目描述

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

请注意 ,必须在不复制数组的情况下原地对数组进行操作。

用例

示例 1:
输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]


示例 2:
输入: nums = [0]
输出: [0]

实现方法

/**
 * @param {number[]} nums
 * @return {void} Do not return anything, modify nums in-place instead.
 */
var moveZeroes = function (nums) {
  // 方法1
  //   nums.sort((a, b) => (b ? 0 : -1))

  // 方法2 -- 快慢指针

  let slow = 0
  for (let fast = 0; fast < nums.length; fast++) {
    if (nums[fast] !== 0) {
      nums[slow] = nums[fast]
      slow++
    }
  }

  nums.fill(0, slow)
  return nums
}

console.log(moveZeroes([0, 1, 0, 3, 12]))


http://www.kler.cn/a/507548.html

相关文章:

  • 数字化时代,传统代理模式的变革之路
  • C++:工具VSCode的编译和调试文件内容:
  • Outlook 无网络连接[2604] 错误解决办法
  • 玩转随机数:用 JavaScript 掌控不可预测的魔力!
  • 探索 Transformer²:大语言模型自适应的新突破
  • MYSQL创建表
  • 软件测试入门—功能需求分析:以一个旅游管理系统为例
  • LeetCode 1426 题:数元素解题全解析
  • 【机器学习实战入门项目】MNIST数字分类机器学习项目
  • 用C++实现一个基于模板的观察者设计模式
  • MySQL的不同SQL模式导致行为不同?
  • 【北京迅为】iTOP-4412全能版使用手册-第七十六章 Qt界面切换
  • Kubernetes(k8s)和Docker Compose本质区别
  • 20.<Spring图书管理系统①(登录+添加图书)>
  • 6.3、OTN 保护
  • Linux 文件权限详解
  • Unity Dots理论学习-3.ECS有关的模块(2)
  • 【FlutterDart】MVVM(Model-View-ViewModel)架构模式例子-http版本(30 /100)
  • 阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI
  • matlab函数的主要目的是对包含在 Excel 电子表格中的实验数据进行模型拟合
  • 【k8s面试题2025】3、练气中期
  • 《机器学习》——SVD(奇异分解)降维
  • Go语言的编程范式
  • SpringBoot:RestTemplate与IllegalArgumentException
  • Springboot项目Jackson支持多种接收多种时间格式
  • C语言:-三子棋游戏代码:分支-循环-数组-函数集合