코테준비 - 3Sum Closest

정상화·2023년 2월 26일

LeetCode

목록 보기
15/222

3Sum Closest

class Solution {
public:
    int threeSumClosest(vector<int> &nums, int target) {
        std::sort(nums.begin(), nums.end());
        int res;
        int dist = INT32_MAX;
        auto fix = nums.begin();

        for (; fix != nums.end(); fix++) {
            auto l = next(fix);
            auto r = prev(nums.end());

            while (l < r) {
                int _dist = abs(*fix + *l + *r - target);
                if(_dist<dist) {
                    dist = _dist;
                    res = *fix + *l + *r ;
                }

                if(*fix + *l + *r < target) l++;
                else if(*fix + *l + *r > target) r--;
                else return target;
            }
        }
        return res;
    }
};
profile
백엔드 희망

0개의 댓글