zoukankan      html  css  js  c++  java
  • [LeetCode][JavaScript]Move Zeroes

    Move Zeroes

    Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

    For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

    Note:

      1. You must do this in-place without making a copy of the array.
      2. Minimize the total number of operations.

    https://leetcode.com/problems/move-zeroes/


    把数组中所有的零放到最后,不能简单地再开一个数组。

    第一种优雅的做法,开一个变量count=0,把数组中不为零的数,按顺序移动到下标为count的位置上,每移动一个count++,最后补上0。

     1 /**
     2  * @param {number[]} nums
     3  * @return {void} Do not return anything, modify nums in-place instead.
     4  */
     5 var moveZeroes = function(nums) {
     6     var count = 0;
     7     for(var i = 0; i < nums.length; i++){
     8         if(nums[i] !== 0){
     9             nums[count] = nums[i];
    10             count++;
    11         }
    12     }
    13     for(; count < nums.length ; count++){
    14         nums[count] = 0;
    15     }  
    16 };

    第二种调用了强大的splice方法,先记录下0的位置,从后往前把0从数组中删掉(从前往后会打乱下标的顺序),最后再补齐。

     1 /**
     2  * @param {number[]} nums
     3  * @return {void} Do not return anything, modify nums in-place instead.
     4  */
     5 var moveZeroes = function(nums) {
     6     var indexArr = [], i;
     7     for(i = 0; i < nums.length; i++){
     8         if(nums[i] === 0){
     9             indexArr.push(i);
    10         }
    11     }
    12     for(i = indexArr.length - 1; i >= 0; i--){
    13         nums.splice(indexArr[i], 1);
    14     }
    15     for(i = 0; i < indexArr.length; i++){
    16         nums.push(0);
    17     }
    18 };
  • 相关阅读:
    Jenkins插件开发(一)--环境搭建
    Jenkins插件开发(二)-- HelloWorld
    Jenkins插件开发(三)-- 插件编写
    持续交付——发布可靠软件的系统方法
    python-字典练习
    python-编写认证登录
    nodejs pm2教程(转载)
    PM2实用入门指南
    删除Remote Desktop的连接历史记录
    Vue中如何使用axios发送jsonp跨域验证
  • 原文地址:https://www.cnblogs.com/Liok3187/p/4822708.html
Copyright © 2011-2022 走看看