美文网首页
leetcode算法练习- 移动零

leetcode算法练习- 移动零

作者: 土豪码农 | 来源:发表于2019-03-26 22:23 被阅读0次

第一次提交

第一次写了个递归,找到一个0删除一个并记录,最后再加回到数组里面

  var moveZeroes = function(nums) {
    const flag = loop(nums);
    for (var i = 0; i < flag; i++) {
      nums.push(0)
    }
  };

  function loop(nums,flag = 0){
    const index = nums.indexOf(0);
    if(index!==-1){
      nums.splice(index,1);
      flag++;
      return loop(nums, flag);
    }else{
      return flag
    }
  }

第二次提交

第二次提交是第一次的升级版,基本原理基本一致的,只不过利用nums.length去计算了到底有几个0

  var moveZeroes = function (nums) {
    var num = 0;
    while (nums.indexOf(0) !== -1 && nums.indexOf(0) < (nums.length - 1 - num)) {
      num++;
      nums.splice(nums.indexOf(0), 1);
      nums.push(0)
    }
  };

第三次提交

第三次利用了双指针,去记录到底有几个0

var moveZeroes = function(nums) {
    var i=0, j=0;
    for(; j<nums.length; j++) {
        if(nums[j] !== 0) {
           nums[i] = nums[j];
           i++;
         }
    }
    for (; i < j; i++) {
        nums[i] = 0;
    }
    return nums;
};

相关文章

  • leetcode算法练习- 移动零

    第一次提交 第一次写了个递归,找到一个0删除一个并记录,最后再加回到数组里面 第二次提交 第二次提交是第一次的升级...

  • Python算法学习——个人日记系列(1)

    以Leetcode的练习题作为练习,来从零基础练习算法。 https://leetcode.com/problem...

  • 算法--leetcode-283-移动零

    相当于是使用 for 进行交换的一个小技巧的练习,后面会给出一些算法的小技巧,都是总结的一些算法的小技巧。

  • 算法:数组(二)

    283. 移动零 - 力扣(LeetCode) (leetcode-cn.com)[https://leetcod...

  • 一起学算法-283. 移动零

    一、题目 LeetCode-283. 移动零链接:https://leetcode-cn.com/problems...

  • LeetCode 移动零

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

  • LeetCode—— 移动零

    题目描述 一、CPP 1. 双指针法: 解题思路:使用两个指针,指针 i 负责遍历数组,指针 j 负责其后的元素均...

  • 算法学习(递归和回溯)

    回溯法 LeetCode 17 电话的字母组合,方法:回溯算法 LeetCode 93 复原IP地址(练习)完...

  • leetcode算法练习

      虽然说我只是一个前端,算法相对来说并不是那么的重要,   但是作为一个程序员,算法多少还是要会一些的   对于...

  • LeetCode考试

    283. 移动零](https://leetcode-cn.com/problems/move-zeroes/) ...

网友评论

      本文标题:leetcode算法练习- 移动零

      本文链接:https://www.haomeiwen.com/subject/lsjovqtx.html