【LeetCode】283. 移动零(js 实现)

news/2024/11/7 16:47:19/

1、题目:283. 移动零 - 力扣(LeetCode) (leetcode-cn.com)

2、实现

(1)方法一:

  • 第一次遍历数组,将非零元素移动到数组的左侧,并使用一个指针j记录非零元素的位置;
  • 第二次遍历数组,从非零元素的下一位开始,到数组的末尾,即j~nums.length-1的元素都置为0。

代码:

/*** @param {number[]} nums* @return {void} Do not return anything, modify nums in-place instead.*/
var moveZeroes = function(nums) {let j = 0;// 第一次遍历数组,将所有非0字符串全部移到数组的最左侧for(let i=0; i<nums.length; i++) {if(nums[i] !== 0) {nums[j] = nums[i];j++;}}// 当数组第一次遍历结束,j在非零元素的下一位// 以010312为例,那j为3// 将从j开始的元素置为0for(let i=j; i<= nums.length-1; i++) {nums[i] = 0;}return nums;
};

(2)方法二:参考快速排序的思想(将参考值设置为0)

  • 只需要遍历一次数组,如果元素为非零元素,则将其交换到数组左侧,将0交换到数组右侧。

代码:

/*** @param {number[]} nums* @return {void} Do not return anything, modify nums in-place instead.*/
var moveZeroes = function(nums) {let j = 0;for(let i=0; i<nums.length; i++) {// 参考快速排序的思想// 当前元素不为0,交换到左边,等于0的交换到右边if(nums[i] !== 0) {let temp = nums[i];nums[i] = nums[j];nums[j] = temp;j++;}}
};

3、参考:

动画演示 283.移动零 - 移动零 - 力扣(LeetCode) (leetcode-cn.com)

快速排序算法_哔哩哔哩_bilibili

4、补充:快速排序思想


http://www.ppmy.cn/news/547932.html

相关文章

lm283_飞利浦Tango LED泛光灯BVP283-普照网

飞利浦超值经济型LED泛光照明解决方案 Tango G2 LED Extension BVP282:16000lm/20000lm BVP283:21000lm/24500lm/28000lm/31500lm/33500lm 节能高效 杰出效益 一、极高能效:高达每瓦100流明的超高效率可为业主带来明显的节能省电效益 二、迅速回本:与传统Tango MMF383相比&…

Verilog HDL的简单应用之74ls283功能的实现

我的错&#xff0c;人神共愤&#xff0c;天理难容…… 简报 众所周知&#xff0c;74ls283是和74ls151还有74ls138一样应用广泛的电子元器件&#xff0c;其本体共有144411116根引脚&#xff0c;鉴于电源和接地引脚仍旧“没有用处”&#xff0c;我们再次对其进行忽略。下面笔者…

imx8烧写Linux系统,EASYARM-IMX283 烧写uboot和linux系统

新入手一台EASYARM-IMX283开发板(以下简称IMX823)&#xff0c;价格比较便宜&#xff0c;配置也不错。 开发板默认安装了WINCE&#xff0c;我还是决定重新烧写uboot和linux内核。 开发板配套光盘里面有不少烧写工具&#xff0c;其中大部分都是windows平台下的工具&#xff0c;所…

EasyARM-i.MX283A 开发环境配置笔记

EasyARM-i.MX283A 开发环境配置笔记 准备开发环境所需的文件&#xff1a; 已上传网盘&#xff0c;自行下载 链接&#xff1a;https://pan.baidu.com/s/1C3SB3UR5Yfn8huMj5kP7GA 提取码&#xff1a;gy1y 一、创建虚拟机 使用&#xff1a;ubuntu-12.04-desktop-i386.iso 链接…

lm283_HMC283LM1_10

HMC283LM1 v04.1201 Typical Applications The HMC283LM1 is ideal for: • Millimeterwave Point-to-Point Radios • LMDS • SATCOM 11 LINEAR & POWER AMPLIFIERS - SMT Functional Diagram D E U IN T N O T C C S U I D D O R P Features SMT mmWave Package Psat Ou…

Verilog——串行四位加法器和超前四位加法器74HC283

Verilog——串行四位加法器和超前四位加法器74HC283 一. 串行四位加法器设计思路1. 一位全加器1.1原理1.2代码实现1.2.1设计模块1.2.2测试模块 1.3 仿真结果 2.用四个一位全加器串行成四位加法器2.1原理2.2代码2.2.1设计模块2.2.2测试模块 2.3仿真结果 二.超前四位加法器74HC28…

LeetCode:283. 移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入: nums [0] 输出: …

LeetCode 283题解

AC 通过 public class LeetCode283 {public void moveZeroes(int[] nums) {int k 0; // nums[0-k] 存储的是 前面k 个不等于 0 的数for(int i 0; i < nums.length; i){if(nums[i]!0){if (k ! i) {// 0 1 2 0 当遍历 到1 时 k 还是0 0 1 交换后是 1 0 此时 k 1int tmp n…