演算法分析與設計——LeetCode:16. 3Sum Closest
阿新 • • 發佈:2019-02-08
class Solution { public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); int first, second, third; int size = nums.size(); int closest; int min; closest = nums[0]+nums[1]+nums[2]; min = abs(target-closest); for (first = 0; first < size-2; first++) { int sum; second = first+1; third = size-1; while (second != third) { sum = nums[first]+nums[second]+nums[third]; if (sum == target) { return target; } int d = abs(target-sum); if (d < min) { min = d; closest = sum; } if (sum < target) { second++; } else { third--; } } } return closest; } };