LeetCode16

16. 最接近的三数之和

 

 

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.

与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

 

和15题类似,前提是要sort排序一下。还有就是如果三个数相加等于target那就直接输出,否则通过比较三个数之和与target差值的绝对值去更新res,得出的最终的res+target的三个数之和最接近的结果。

#include
#include
#include //sort头文件
#include
#include
using namespace std;

class Solution {
public:
    int threeSumClosest(vector& nums, int target) {
		
		int add;
		int res = nums[0]+nums[1]+nums[2]-target;
        sort(nums.begin(),nums.end());

		for(int i=0;i0 && nums[i]==nums[i-1])
				continue;

			for(int j=i+1,k=nums.size()-1;j>n;
	vector nums;
	for(int i=0;i>m;
		nums.push_back(m);
	}
	cin>>target;
	Solution solution;
	cout<

 

你可能感兴趣的:(LeetCode)