leetcode-3Sum Closest
来源:互联网 发布:网络歌手曹菲儿 编辑:程序博客网 时间:2024/06/08 15:50
Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.
For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).
bool compare(const int &a, const int &b){ return a<b;}class Solution {public: int threeSumClosest(vector<int> &num, int target) { int n = num.size(); int ret; int gap; sort(num.begin(),num.end(),compare); ret = num[0]+num[1]+num[2]; gap = abs(ret-target); for(int i = 0; i < n-1; i++) { if((i > 0)&&(num[i] == num[i-1]))continue; int a = target-num[i]; int j = i+1; int k = n-1; while(k > j) { if(a == num[j]+num[k]) { return target; } else if(a > num[j]+num[k]) { if(a-num[j]-num[k] < gap) { gap = a - num[j]-num[k]; ret = num[i]+num[j]+num[k]; } j++; while((num[j]==num[j-1])&&(j < n))j++; } else { if(num[j]+num[k]-a < gap) { gap = num[j]+num[k]-a; ret = num[i]+num[j]+num[k]; } k--; while((num[k]==num[k+1])&&(k > -1))k--; } } } return ret; }};
0 0
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- [LeetCode] 3Sum Closest
- 【leetcode】3Sum Closest
- [LeetCode]3Sum Closest
- LeetCode-3Sum Closest
- LeetCode:3Sum Closest
- LeetCode | 3Sum Closest
- 【leetcode】3Sum Closest
- Leetcode: 3Sum Closest
- leetcode-Partition List
- 奇異值分解 (SVD)
- Centos 安装 Nginx+passenger及同puppet-dashboard结合
- 常见HTTP状态详解
- 分享8年开发经验,浅谈程序员职业规划
- leetcode-3Sum Closest
- 总结自己这十几年所犯的职场错误
- FEDORA 20尝试了各种安装FCITX拼音的方法,只有一种是可行的
- jQuery Mobile移动开发
- Atitit. C# java 的api 目录封装结构映射总结
- leetcode-Subsets II
- leetcode-Jump Game
- HDU 5046 DLX
- 数论总结