描述
给一个数组 nums 写一个函数将 0
移动到数组的最后面,非零元素保持原数组的顺序
1.必须在原数组上操作
2.最小化操作数
您在真实的面试中是否遇到过这个题?
是
样例
给出 nums = [0, 1, 0, 3, 12]
, 调用函数之后, nums = [1, 3, 12, 0, 0]
.
思路较为简单。
class Solution {
public:
/**
* @param nums: an integer array
* @return: nothing
*/
void moveZeroes(vector<int> &nums) {
// write your code here
int i = 0;
int j = 0;
int len = nums.size();
while( i < len ) {
if( nums[i] != 0 ) {
nums[j] = nums[i];
j++;
}
i++;
}
while( j < len ) {
nums[j] = 0;
j++;
}
}
};