[LeetCode] 3Sum Closest
2015-06-10 22:57
501 查看
This problem is very similar to 3Sum. You only need to maintain a variable for the sum that is closet to target. Also, some corner cases need to be handled; for example, nums does not have more than 2 elements.
The code is as follows, which is quite self-explanatory.
The code is as follows, which is quite self-explanatory.
int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(), nums.end()); while (nums.size() <= 2) return accumulate(nums.begin(), nums.end(), 0); int ans = nums[0] + nums[1] + nums[2]; for (int i = 0; i < nums.size() - 2; i++) { int left = i + 1, right = nums.size() - 1; while (left < right) { int temp = nums[i] + nums[left] + nums[right]; if (abs(temp - target) < abs(ans - target)) ans = temp; if (temp == target) return ans; if (temp > target) right--; else left++; } } return ans; }
相关文章推荐
- C/C++文字常量与常变量的概念与区别
- Linux环境变量配置文件
- C/C++文字常量与常变量的概念与区别
- [Ubuntu] bash: warning: setlocale: LC_ALL: cannot change locale
- 黑马程序员----java线程
- Java中字符串的使用
- SQL Server 2008 R2 下如何清理数据库日志文件
- android如何屏蔽掉home键
- 指针版线段树
- Android知乎日报开发
- 记得去实现自己的梦想,dream is power
- 第一次demo制作感想
- Android GradientDrawable高级应用 以后完全用不上美工了
- MobclickAgent——友盟用户分析工具
- 怎么设置 select控件【下拉框】 只读
- 并查集实现Kruskal算法
- 读文件
- Linux 时钟与计时器
- iptables详解
- Cocos2d-x学习笔记(九)纹理CCTexture2D和精灵CCSprite