leetcode_283 移动零

2020-11-19  本文已影响0人  看到这朵小fa了么

一年前的思路都比现在强 醉了,真实越来越菜
这次用的是 非0则向前插入,但是要记录下第一个0的位置,一年前我想的是将0移除,在数组尾补0,需要记录整理的0的个数

function moveZeroes(nums: number[]): void {
  let i:number=0
  let start:number=0
  let first:boolean = true
  while(i<nums.length) {
    if(nums[i]!==0){
      nums.splice(start, 0, nums[i])
      nums.splice(i+1, 1)
      start++
    } else if(first) {
        start=i
        first=false
    }
    i++
  }
};
// one year later
var moveZeroes = function(nums) {
    let length = nums.length
    for(let i = 0; i<length; i++) {
        if(nums[i] === 0) {
            nums.splice(i,1)
            nums.push(0)
            length--
            i--
        }
    }
};
上一篇 下一篇

猜你喜欢

热点阅读