leetcode_283 移动零

一年前的思路都比现在强 醉了,真实越来越菜
这次用的是 非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--
        }
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容