标签:
leetcode - Move Zeroes
Given an array nums
, write a function to move all 0
‘s to the end of it while maintaining the relative order of the non-zero elements.
For example, given nums = [0, 1, 0, 3, 12]
, after calling your function, nums
should be [1, 3, 12, 0, 0]
.
Note:
class Solution { public: void moveZeroes(vector<int>& nums) { int pos = -1, i = 0; while(i<nums.size()){ if(nums[i] != 0){ nums[++pos] = nums[i]; } i++; } while(pos+1<nums.size()){ nums[++pos]=0; } } };
思路:先把非零的数排到前面,并记录非零数最后的位置,然后把后面的其他数字都设置为0即可。
时间复杂度O(n), 空间复杂度 O(1)
标签:
原文地址:http://www.cnblogs.com/shnj/p/4857322.html