【LeetCode】3Sum Closest

class Solution {
public:
    int threeSumClosest(vector<int> &num, int target) {
        sort(num.begin(), num.end());
	int ret;
	bool first = true;
	for (int i = 0; i < num.size(); i++)
	{
		int start = i + 1;
		int end = num.size() - 1;
		while (start < end)
		{
			int sum = num[i] + num[start] + num[end];
			if (first)
			{
				ret = sum;
				first = false;
			}
			else
			{
				if (abs(sum - target)<abs(ret-target))
				{
					ret = sum;
				}
			}
			if (ret == target)
			{
				return ret;
			}
			if (sum>target)
			{
				end--;
			}
			else
			{
				start++;
			}
		}
	}
	return ret;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章