코테준비 - 3Sum

정상화·2023년 2월 26일

LeetCode

목록 보기
14/222

3Sum

class Solution {
public:
    vector<vector<int>> threeSum(vector<int> &nums) {
        sort(nums.begin(), nums.end());
        set<vector<int>> temp;

        for (auto fix = nums.begin(); fix != nums.end(); fix++) {
            auto s = next(fix);
            auto e = prev(nums.end());

            while (s < e) {
                if (s == fix) {
                    s++;
                    continue;
                }
                if (e == fix) {
                    e--;
                    continue;
                }

                if (*s + *e + *fix< 0) {
                    s++;
                } else if (*s + *e + *fix == 0) {
                    temp.insert(vector<int>{*fix, *s, *e});
                    s++;
                    e--;
                } else {
                    e--;
                }
            }
        }

        vector<vector<int>> result;
        for_each(temp.begin(), temp.end(), [&result](vector<int> s) {
            result.push_back(s);
        });

        return result;
    }
};
profile
백엔드 희망

0개의 댓글