0이 포함된 int 배열에서 0들을 배열의 뒤쪽으로 이동시키는 문제입니다.
https://leetcode.com/problems/move-zeroes/submissions/
//problem no : 283
class Solution {
public:
void moveZeroes(vector<int>& nums) {
int index = 0;
for(int i=0;i<nums.size();i++){
if(nums[i]){
swap(nums[index++], nums[i]);
}
}
}
};
O(n)으로 작성할려고 노력했는데, 생각보다 속도 %가 나오지는 못했습니다.
다른 사람의 코드를 보던중에 for문의 새로운 활용?
for(; j < nums.size(); nums[j++] = 0
과 같은 코드도 볼 수 있어서 신기했습니다,
한가지 아쉬운 점은 제가 작성한 코드에서
swap연산이 [1,2,3,4,5] 배열이 들어와도 1,1 swap
2,2 swap등을 하게 된다는 것입니다.