移动零

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
示例:
输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:
必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。

啊,我想用双指针,各种特殊情况满足不了。脑子清醒点再补上

var moveZeroes = function(nums) {
    let index = 0//设置一个计数器
    nums.forEach((num)=>{//遍历数组非0元素赋给计数器位置
        if(num!=0){
            nums[index] = num
            index++
        }
    })
    //遍历结束后将计数器之后的值赋为0
    for(let i=index;i<nums.length;i++){
        nums[i] = 0
    }
    console.log(nums)
    console.log(index)
    return nums
};
moveZeroes([1,0])

冒泡:

var moveZeroes = function(nums) {
    for(let j=1;j<nums.length;j++){
        for(let i=1;i<nums.length;i++){
            if(nums[i-1]==0){ //遇到0元素向右交换位置
                let temp = nums[i-1]
                nums[i-1] = nums[i]
                nums[i] = temp
            }
        }
    }
    console.log(nums)
    return nums
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 283. 移动零 题目描述 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相...
    周闖阅读 1,378评论 0 0
  • 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [...
    是黄小胖呀阅读 4,791评论 0 0
  • 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [...
    Abeants阅读 1,090评论 0 0
  • 题目链接难度:简单 类型: 数组 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾...
    wzNote阅读 2,744评论 0 3
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,749评论 28 53

友情链接更多精彩内容