leetcode-283 移动零元素到数组最后

//测试:nums=1,0,3,0,12  nums=1,0,0,0,123
void moveZeroes(vector<int> &nums) {
     int size=nums.size();
	 int j=0;
	 for(int i=0;i<size;i++){
		 if(nums[i]==0){
			 if(j==0){
				j=i+1;
			}
			 while(j!=size&&nums[j]==0){//加上j!=size是为了防止数据越界,例如1,0,0,0,0,123
				j++;
			 }
			 if(j!=size&&nums[j]!=0){
				 int temp=nums[i];
				nums[i]=nums[j];
				nums[j]=0;
				j++;
			 }
		 }
	}
}

猜你喜欢

转载自blog.csdn.net/qq_36381573/article/details/83011057