15算法课程 283. 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:

  1. You must do this in-place without making a copy of the array.
  2. Minimize the total number of operations.


solution:

给定一个数组nums,写一个函数将所有的0移动到最后,同时保持非零元素的相对顺序


code:

class Solution {
public:
    void moveZeroes(vector<int>& nums) {
		int n=nums.size();
		int count=0;
		int num=0;
		for(int i=0;i<n;i++)
		{
			if(nums[i]==0)
				num++;
			else
			{
				nums[i-num]=nums[i];
				count++;
			}
		}
		for(int i=count;i<n;i++)
			nums[i]=0;
	}
};






猜你喜欢

转载自blog.csdn.net/QingJiuYou/article/details/78801086