Move Zeroes

Yohan Kim·2021년 9월 27일
0

problem

0이 포함된 int 배열에서 0들을 배열의 뒤쪽으로 이동시키는 문제입니다.

https://leetcode.com/problems/move-zeroes/submissions/

solution

//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등을 하게 된다는 것입니다.

profile
안녕하세요 반가워요!

0개의 댓글