//original
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int j=0;
int temp=0;
for(int i=0;i<nums.size();i++)
if(nums[i]!=0){
temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
j++;
}
}
};
//concise
class Solution {
public:
void moveZeroes(vector<int>& nums) {
for(int i=0, j=0; i<nums.size(); i++){
if(nums[i])
swap(nums[i], nums[j++]); //j: current index of first non-zero
}
}
};