美文网首页
283.移动零

283.移动零

作者: spark打酱油 | 来源:发表于2022-08-10 23:01 被阅读0次

    1.题目

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

    请注意 ,必须在不复制数组的情况下原地对数组进行操作。

    示例 1:

    输入: nums = [0,1,0,3,12]

    输出: [1,3,12,0,0]

    示例 2:

    输入: nums = [0]

    输出: [0]

    提示:

    1 <= nums.length <= 104

    -231 <= nums[i] <= 231 - 1

    进阶:你能尽量减少完成的操作次数吗?

    2.思路

    双指针

    3.代码

    object Solution {

        def moveZeroes(nums: Array[Int]): Unit = {

        var right = nums.length-1

        var j = 0

        for(x<- 0 to right){

          if(nums(x)!=0){

            var temp = nums(x)

            nums(x) = nums(j)    // num(j)  最终是j前面的元素(包括j都是非0元素),剩下的j后元素均为0,因为是不等于0的才进行j指针操作

            nums(j) = temp

            j=j+1

          }

        }

      }

    }

    相关文章

      网友评论

          本文标题:283.移动零

          本文链接:https://www.haomeiwen.com/subject/lwqzwrtx.html