首页 > 其他分享 >LeetCode 283. Move Zeroes All In One

LeetCode 283. Move Zeroes All In One

时间:2024-05-25 11:08:02浏览次数:15  
标签:Zeroes index nums Move flag let 283 com leetcode

LeetCode 283. Move Zeroes All In One

array in-place swap / 数组就地交换算法

errors


function moveZeroes(nums: number[]): void {
  // in-place 就地交换
  let index = 0;
  // let flag = false;
  for(let i = 0; i < nums.length; i++) {
    if(nums[i] === 0) {
      index = i;
      flag = true;
      console.log(`index =`, index);
    } else {
      // nums[index] !== 0
      console.log(`flag =`, flag);
      if(flag) {
        // swap
        [
          nums[index],
          nums[i]
        ] = [
          nums[i],
          nums[index]
        ];
        index = i;
        console.log(`nums =`, nums);
        // clear
        flag = false;
      }
    }
  }
};

solutions ✅

/**
 Do not return anything, modify nums in-place instead.
 */

function moveZeroes(nums: number[]): void {
  // in-place 就地交换
  for(let i = 0; i < nums.length - 1; i++) {
    let j = i + 1;
    while(nums[j] === 0 && j < nums.length - 1) {
      j += 1;
    }
    // console.log(`j`, j, nums[j])
    if(nums[i] === 0) {
      // swap
      [
        nums[j],
        nums[i]
      ] = [
        nums[i],
        nums[j]
      ];
    }
  }
};

demos


image

https://leetcode.com/problems/move-zeroes/description/?envType=study-plan-v2&envId=leetcode-75

https://leetcode.com/problems/move-zeroes/solutions/5204027/leetcode-283-move-zeroes-solution/

(

标签:Zeroes,index,nums,Move,flag,let,283,com,leetcode
From: https://www.cnblogs.com/xgqfrms/p/18212179

相关文章

  • NRF52833是一款通用多协议SoC蓝牙芯片内置M4内核超低功耗
    NRF52833是一款通用多协议SoC,具有蓝牙测向无线电,可在-40°C至105°C的扩展温度范围内工作。它是业界领先的nRF52系列的第5款产品,围绕带FPU的64MHzArmCortex-M4构建,具有512KB闪存和128KBRAM内存,可用于高价值应用。nRF52833可在105°C运行,加上大量内存和动态多......
  • Qt线程使用方法一:moveToThread
    在Qt中创建线程去执行耗时任务,并在任务完成后通知调用方(无论成功还是失败),可以通过使用QThread和信号槽机制来实现。以下是一个简单的示例,展示如何创建一个线程来执行任务,并在任务完成后发送信号。步骤 1: 定义工作类首先,定义一个工作类,该类将在单独的线程中执行任务。这个类......
  • E - Remove Pairs(状压dp+博弈论)
     ​思路:容易发现,我们取走一张牌后:如果下一步的人必败,则这一步的人必胜,因为可以走这个状态。反之,这个人必败。代码:#include<bits/stdc++.h>usingnamespacestd;intn,a[21],b[21],f[2000005];intmain(){ios::sync_with_stdio(false);cin.tie(0);cout.t......
  • ABC354 E - Remove Pairs 做题笔记
    ABC354E-RemovePairs做题笔记题目链接对于这种带有博弈论的dp,考虑这样设计状态:令\(f_s\in\{1,0\}\)表示“游戏局面”为\(s\)时,先手必胜还是必败。本题中,“游戏局面”可以表示为剩余卡牌的编号集合。又因为本题中\(N\)​很小,通过状压,可以直接用一个int表示游戏......
  • 记录freeswitch的一个2833问题
    概述freeswitch是一款简单好用的VOIP开源软交换平台。运营商内部新老系统混用,互联互通的问题较多,其中以DTMF码的问题最多,花样也多。环境CentOS7.9freeswitch1.10.7问题描述问题现象正常的fs业务服务器,呼叫正常,部分呼叫报错DTMF收码失败。内部测试,呼叫正常,信令正常,媒体......
  • 多线程下使用List中的subList和remove方法产生的 java.util.ConcurrentModificationEx
    在说多线程操作List之前,我们先看下单线程下产生的问题:单线程List<Integer>listA=newArrayList<>();listA.add(1);listA.add(2);listA.add(3);listA.add(4);listA.add(5);listA.add(6);for(Integera:listA){......
  • How Does the Rook Move?
    题目链接https://codeforces.com/contest/1957/problem/C思路其实不难,最重要的就是一个问题,从n个数中两两配对,有多少种配法首先进行全排列,即N!除去左右相等的即2的n/2次方,再除去彼此之间没顺序(N/2)!代码#include<iostream>#include<cstdio>#include<algorithm>#include<cst......
  • [shell:bash] ubuntu_remove_old_kernel_test
    [shell:bash]  ubuntu_remove_old_kernel_test    一、基本信息 1、os:Linuxubuntu6.5.0-35-generic#35-UbuntuSMPPREEMPT_DYNAMICFriApr2611:23:57UTC2024x86_64x86_64x86_64GNU/Linux 2、bash:GNUbash,version5.2.......
  • openGauss 开启RemoveIPC引起的core问题
    开启RemoveIPC引起的core问题问题现象操作系统配置中RemoveIPC参数设置为yes,数据库运行过程中出现宕机,并显示如下日志消息。FATAL:semctl(1463124609,3,SETVAL,0)failed:Invalidargument原因分析当RemoveIPC参数设置为yes时,操作系统会在对应用户退出时删除IPC资源(共......
  • 补档 https://github.com/taichi-framework/TaiChi/wiki/FAQ/9eeeef88cdbcee6a2834969
    taichi-framework/TaiChiPublicNotificationsFork 572 Star 5.9kCodePullrequestsActionsWikiSecurityInsightsFAQ weishueditedthispage onNov2,2018 · 17revisions如何使用点击右下角浮动按钮,然后选择“创建应用”......