59 · 最接近的三数之和(相向双指针)
2026/6/6 15:42:29 网站建设 项目流程

链接:https://www.lintcode.com/problem/59/description

题解:

class Solution { public: /** * @param numbers: Give an array numbers of n integer * @param target: An integer * @return: return the sum of the three integers, the sum closest target. */ int threeSumClosest(vector<int> &numbers, int target) { // write your code here int len = numbers.size(); if (len <= 0) { return 0; } sort(numbers.begin(), numbers.end()); int result = INT_MAX; for (int i = 0; i < numbers.size(); ++i) { int l = i + 1; int r = len-1; int sum = numbers[i]; while (l < r) { sum = numbers[i] + numbers[l] + numbers[r]; if (abs(sum-target) < abs(result-target)) { result = sum; } if (sum > target) { --r; } else if (sum < target) { ++l; } else { return target; } } } return result; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询