标签:while The iss highlight BMI runtime front for integer
Given an array nums
of n integers and an integer target
, find three integers in nums
such that the sum is closest to target
. Return the sum of the three integers. You may assume that each input would have exactly one solution.
Example:
Given array nums = [-1, 2, 1, -4], and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
AC code:
class Solution { public: int threeSumClosest(vector<int>& nums, int target) { int len = nums.size(); int front, tear, flag, sub=INT_MAX; int ans, sum; sort(nums.begin(), nums.end()); for (int i = 0; i < len; ++i) { front = i+1; tear = len-1; while (front < tear) { flag = sub; sum = nums[i] + nums[front] + nums[tear]; if (sum > target) { sub = min(sub, abs(sum - target)); if (flag != sub) ans = target + sub; tear--; } else if (sum < target) { sub = min(sub, abs(sum - target)); if (flag != sub) ans = target - sub; front++; } else { return target; } } } return ans; } };
Runtime: 12 ms, faster than 30.32% of C++ online submissions for 3Sum Closest.
标签:while The iss highlight BMI runtime front for integer
原文地址:https://www.cnblogs.com/ruruozhenhao/p/9738639.html