0
点赞
收藏
分享

微信扫一扫

Leetcode 283. 移动零

雅典娜的棒槌 2022-03-18 阅读 232

283. 移动零

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

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

示例 1:

输入: nums = [0,1,0,3,12]
输出: [1,3,12,0,0]
示例 2:

输入: nums = [0]
输出: [0]

思路:
使用双指针,都从左侧开始。
右指针不断向右移动,当遇到非零的数字时,与左指针交换,同时左指针加一。
代码如下:

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
        int l=0;
        int r=0;
        while(l<nums.size()&&r<nums.size()){
            
            if(nums[r]!=0){
                swap(nums[l],nums[r]);
                l++;
            }
                
            r++;
            }
            
        
    }
    
};
举报

相关推荐

0 条评论