移动零

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

示例:

输入: [0,1,0,3,12]
输出: [1,3,12,0,0]
说明:

必须在原数组上操作,不能拷贝额外的数组。
尽量减少操作次数。

分析:观察上面的测试用例 在1之前有一个0 需要移动的位置是1的索引减去领的索引--变为1-0-0-3-12
索引3需要移动的位置是索引3减去两个0得到1这个索引位置 ----1-3-0-0-12
同理12的位置就是自己的索引4减去0的个数2得到索引位置
代码如下=

func moveZeroes(nums []int)  {
    var nZero = 0
    for index, value := range nums {
        if value == 0 {
            nZero++
            continue
        }

        if nZero == 0 {
            continue
        }

        nums[index-nZero] = value
        nums[index] = 0
    }
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 移动零 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入:[...
    余百777阅读 327评论 0 0
  • 描述 给一个数组 nums 写一个函数将 0 移动到数组的最后面,非零元素保持原数组的顺序 注意事项 1.必须在原...
    6默默Welsh阅读 309评论 0 0
  • 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [...
    极客匠阅读 195评论 0 0
  • 移动零给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入...
    one_zheng阅读 112评论 0 0
  • 姓名:胡倩 公司:杭州豪士特商贸有限公司 组名:367期利他一组 【日精进打卡第70天】 【知~学习】 《六项精进...
    Qian宝_阅读 71评论 0 0

友情链接更多精彩内容