Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int threeSumClosest(vector<int> &numbers, int target) {
- // write your code here
- if (numbers.size() < 3) return 0;
- int closestSum = INT_MAX;
- sort(numbers.begin(), numbers.end());
- for (int i=0; i<numbers.size()-2; i++) {
- int left = i+1;
- int right = numbers.size()-1;
- while (left < right) {
- int sum = numbers[i] + numbers[left] + numbers[right];
- if (sum == target) {
- return target;
- } else if (sum < target) {
- left += 1;
- } else {
- right -= 1;
- }
- if (abs(target - sum) < abs(target - closestSum)) {
- closestSum = sum;
- }
- }
- }
- return closestSum;
- }
Add Comment
Please, Sign In to add comment