LetCode 75 Sort Colors(색상 정렬)

번역하다

 、 、 , , 、 、 。

 , 0、1 2 、 。

원문

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

분석하다.


이 문제를 보자마자 range-for가 생각났다. 아마도 이런 방법은 약간 투기적일 것이다. 그러나 확실히 쉽게 실현되었다.
void sortColors(vector<int>& nums) {
    vector<int> v0, v1, v2;  
    for (auto n : nums) {
        switch (n)
        {
        case 0:
            v0.push_back(n);
            break;
        case 1:
            v1.push_back(1);
            break;
        case 2:
            v2.push_back(2);
            break;
        default:
            break;
        }
    }
    nums.erase(nums.begin(), nums.end());
    for (auto a0 : v0) {
        nums.push_back(a0);
    }
    for (auto a1 : v1) {
        nums.push_back(a1);
    }
    for (auto a2 : v2) {
        nums.push_back(a2);
    }              
}

좋은 웹페이지 즐겨찾기