本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!