【数组】283. 移动零(简单)

it2023-02-12  55

【题目】 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。 【示例】 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 【说明】 必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。 【代码】

class Solution { public: void moveZeroes(vector<int>& nums) { int step=nums.size(),cnt=0; for(int i=0;i<step;i++) if(nums[i]!=0) nums[cnt++]=nums[i]; for(int i=cnt;i<step;i++) nums[i]=0; } };

【方法二】

class Solution { public: void moveZeroes(vector<int>& nums) { int step=nums.size(),cnt=0; for(int i=0;i<step;i++) if(nums[i]!=0) swap(nums[cnt++],nums[i]); } };
最新回复(0)