LeetCode移动零

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

说明:

  • 必须在原数组上操作,不能拷贝额外的数组。
  • 尽量减少操作次数。
  • void moveZeroes(int* nums, int numsSize){ int count = 0, length = numsSize-1; while (length >= 0) { if(nums[length] == 0) { count++;//计数 int temp = length; while (temp 0) { nums[numsSize-count] = 0; count–; }}

    官方答案:双指针

    思路及解法

    使用双指针,左指针指向当前已经处理好的序列尾部,右指针指向待处理序列的头部

    右指针不断向右移动,每次右指针指向非零数,则将左右指针对应的数交换,同时左指针右移。

    注意到以下性质:

    左指针左边均为非零数;

    右指针左边直到左指针处均为零。

    因此每次交换,都是将左指针的零与右指针的非零数交换,且非零数的相对顺序并未改变。

    void swap(int *a, int *b) { int t = *a; *a = *b, *b = t;}void moveZeroes(int *nums, int numsSize) { int left = 0, right = 0; while (right < numsSize) { if (nums[right]) { swap(nums + left, nums + right); left++; } right++; }}

    郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
    (0)
    用户投稿
    上一篇 2022年6月30日
    下一篇 2022年6月30日

    相关推荐

    • 续航最长320km,支持快充,轴距2890mm,2022款龙耀8正式上市

      近日,汽车子弹从厦门金龙官方获悉,2022款龙耀8上市,新车为定义为纯电轻客,此次共推出了5款车型,官方指导价格为14.97万-16.17万元。新车还有哪些亮点呢?下面就跟随汽车子…

      2022年6月30日
    • 抖音上纯推文怎么赚钱啊 小说推广的单子哪里接

      相信喜欢看小说的朋友很多,围子也是一个小说迷,晒晒围子某雅的江湖。 这里的话首推某乎,因为某乎的内容太丰富了,而且很好选择。这也是能在某乎上获得收入的不错选择。 这里因为涉及到视频…

      2022年10月25日
    • 一个健壮的全能型选手,飞傲M11 Plus的陪伴体验

      自从上手M11 Plus以后,这台播放器成为了我使用频率颇高的便携前端之一,而且在多数的便携塞评测中我都将它作为搭配套装来服用,喜欢用它的原因其实很简单,就是因为在这台播放器身上,…

      2022年6月25日
    • 《原神》菲谢尔操作有什么技巧?菲谢尔操作实用技巧分享

      原神是一款米哈游出品的开放世界动作冒险游戏,玩家可以在其中自由的冒险。菲谢尔是游戏中一个4星雷属性人物,很多小伙伴可能还不清楚操作有什么技巧吧,今天小编给大家带来原神菲谢尔操作实用…

      2022年9月5日
    • 蜂花就是倒序洗头亲生的

      先把头发淋湿,在头发上抹上护发素,抹均匀,盘起来 这期间可以去干点别的,比如说敷个面膜洗个衣服什么的 然后再冲干净,用洗发水洗头 这就是一个倒过来的洗头顺序 还有很重要的,洗完头之…

      2022年6月24日
    • 男子用扳手敲打工友头部100多次 原因是原来是这样

      从作案细节,来分析犯罪分子是否有故意杀人的主观意图致人死亡最多的冷兵器是利器还是钝器?很多人以为是尖刀等利器。但实际上,在真实案例中,致人死亡最多的是锤子等钝器。因为这些钝器都有一…

      2022年6月1日
    • 视频转语音其实很简单!用对了方法,5秒钟搞定

      平时刷短视频时经常会刷到一些英语短文朗诵,对于我这种英语差的人来说,经常听能大大提高我的英语口语能力,于是就想要将视频转换成语音保存到手机,这样就可以无限循环学习了! 可是该如何转…

      2022年8月19日
    • Mybatis plus通用字段自动填充的最佳实践总结

      在进行持久层数据维护(新增或修改)的时候,我们通常需要记录一些非业务字段,比如:create_time、update_time、update_by、create_by等用来维护数据…

      2022年6月21日
    • 瞧瞧人家用SpringBoot写的后端API接口,那叫一个优雅

      日常工作中,我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的,没有统一处理的话,代码就不优雅,也不容易维护。…

      2022年6月21日
    • ImportSelector 与 DeferredImportSelector 的区别(spring4)

      欢迎访问我的 GitHub 这里分类和汇总了欣宸的全部原创(含配套源码): https://github.com/zq2599/blog_demos 在使用 @Import 注解来…

      2022年6月28日

    联系我们

    联系邮箱:admin#wlmqw.com
    工作时间:周一至周五,10:30-18:30,节假日休息