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)删除。
    用户投稿
    上一篇 2022年6月30日 20:05
    下一篇 2022年6月30日 20:06

    相关推荐

    • 存储过程语法(sql server存储过程语法)

      今天小编给各位分享存储过程语法的知识,其中也会对sql server存储过程语法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! oracle存储过程基本语法…

      2022年11月26日
    • 宝可梦朱紫宝主顺序怎么选择?宝可梦朱紫宝主挑战顺序攻略

      宝可梦朱紫宝主顺序如何选择?宝主挑战的顺序有很多玩家都加入了讨论,大家想要了解清楚正确的挑战顺序,接下来小编就给大家简单的介绍一下宝主挑战的顺序,各位赶紧通过下面的攻略多了解一下详…

      2022年11月25日
    • 淘宝直播开通后带货链接怎么做(淘宝直播需要开通淘宝店铺吗)

      直播带货无论是对于商家来说还是主播收益都是非常可观的,所以不少平台都有直播带货功能,一些小伙伴也想加入淘宝直播,那么淘宝直播开通后带货链接怎么做?下面小编为大家带来淘宝直播开通后带…

      2022年11月24日
    • 宝可梦朱紫道馆及宝主攻略顺序是什么 道馆及宝主攻略顺序汇总

      作为宝可梦资深爱好者,小伙伴们对宝可梦朱紫里面的所有道馆恨不得马上跳过,当场就来挑战地区冠军,但这显然是不可能的,你得按照游戏里面遇到的顺序来进行挑战。那么具体的挑战顺序是什么样的…

      2022年11月24日
    • 快手限流多久能解除(快手限流什么意思)

      我相信很多人都看中了快手平台的商机,都争先恐后地想要抢占机会,可一些人刚刚作出一点成绩,就被降权了,自己也不知道什么原因。所以今天就来聊聊快手账号降权操作分享,赶快来看看避免违规!…

      2022年11月23日
    • Win11 22H2再出新问题Bug:无法弹出USB设备

      作为Windows 11的首次大更新,在Win11 22H2发布后并没有带来预想的场景,各种问题频现成为了一种常态。 近日有消息称,Win11 22H2存在一个占用冲突Bug,当用…

      2022年11月22日
    • 美团月付300小额取现?美团月付取现300不见了

      很多上班族每天都在使用美团点外卖,你知道美团现在推出了一款类似花呗的产品吗?可以在美团消费的时候先消费后还款,叫做美团月付,是美团推出的一款消费型产品,不能直接提现到银行卡,只能用…

      2022年11月21日
    • 没带卡怎么在ATM机取款(无卡取款怎么操作)

      刷脸消费支付已经十分方便,最近不少银行根据这种刷脸技术,提供了刷脸存取款的业务。我们不需要带卡,就可以直接刷脸取款。下面让我们来看看具体怎么操作。 刷脸取款怎么操作? 【1】我们找…

      2022年11月17日
    • 西班牙獒(西班牙獒犬多少钱一只)

      本文主要讲的是西班牙獒,以及和西班牙獒犬多少钱一只相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 西班牙獒的外形特征 整体外型:具有典型獒犬的外貌,中等比例和分长…

      2022年11月16日
    • 博客如何赚钱利用新浪博客快速赚钱或者引流

      很多人都在寻找网上赚钱的项目,也有很多人在找暴利项目,而我发现往往这些人花费在找网赚项目的时间要比实操项目的时间长的多,因此很多很多的人最后都是以失败而告终,这样周而复始,恶性循环…

      2022年11月15日

    联系我们

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