leetcode No283. Move Zeroes
Posted Dufre.WC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode No283. Move Zeroes相关的知识,希望对你有一定的参考价值。
Question
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.
Example:
Input: [0,1,0,3,12]
Output: [1,3,12,0,0]
Algorithm
- 遇到0怎么处理:用一个变量记录0的个数
p
- 如何使下标
index
移动到正确的位置?- 与前面统计的0的个数有关系:
index - p
- 与前面统计的0的个数有关系:
Code
class Solution
public:
void moveZeroes(vector<int>& nums)
int p = 0;
for (int i=0;i<nums.size();i++)
if (nums[i] == 0)
p++;
else
nums[i-p] = nums[i];
for (int j=nums.size()-p;j<nums.size();j++)
nums[j] = 0;
;
以上是关于leetcode No283. Move Zeroes的主要内容,如果未能解决你的问题,请参考以下文章