코테준비 - Next Permutation

정상화·2023년 2월 26일

LeetCode

목록 보기
29/222

Next Permutation

class Solution {
public:
    void nextPermutation(vector<int> &nums) {
        int sz = nums.size();
        if (sz == 1) return;

        for (int i = sz - 1; i >= 0; i--) {
            int leastBigger = 101;
            int idx;
            for (int j = i +1; j < sz; j++) {
                if (nums[i] < nums[j] && nums[j] < leastBigger) {
                    leastBigger = nums[j];
                    idx = j;
                }
            }
            if (leastBigger != 101) {
                swap(nums[i], nums[idx]);
                sort(nums.begin() + i + 1, nums.end(), [](int a, int b) {
                    return a < b;
                });
                return;
            }
        }
        sort(nums.begin(), nums.end(), [](int a, int b) {
            return a < b;
        });
    }
};
profile
백엔드 희망

0개의 댓글