200111题

在这里插入图片描述
思路:三指针,以例子进行分析:(感觉这题还是很不错的)
在这里插入图片描述
在这里插入图片描述

#include<iostream>
#include<vector>
#include<cmath>
#include<algorithm>
using namespace std;
class Solution {
public:
	int threeSumClosest(vector<int>& nums, int target) {
		sort(nums.begin(), nums.end());
		int ans = nums[0] + nums[1] + nums[2];
		for (int i = 0; i <= nums.size() - 3; i++)
		{
			int start = i + 1, end = nums.size() - 1;
			while (start != end)
			{
				int temp = nums[i] + nums[start] + nums[end];
				if (abs(temp - target) < abs(ans - target))
					ans = temp;

				if (temp < target)
					start++;
				else
					if (temp > target)
						end--;
					else
						return ans;
			}
		}

		return ans;
	}
};

在这里插入图片描述

发布了146 篇原创文章 · 获赞 3 · 访问量 4983

猜你喜欢

转载自blog.csdn.net/ShenHang_/article/details/103745462