【leetcode】16. 3Sum Closest
2016-05-23 12:41
429 查看
/** * 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). */ #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int threeSumClosest(vector<int>& nums, int target) { int len = nums.size(); int closest = INT_MAX; int l = 0, r = 0; int sum = 0; for (int i = 0; i < len; i++) { l = i + 1; r = len - 1; while (l < r) { sum = nums[i] + nums[l] + nums[r]; if (closest == INT_MAX) closest = sum; else closest = abs(sum - target) < abs(closest - target) ? sum : closest; if (sum == target) { return target; } else if (sum < target) l++; else r--; } } return closest; } int main() { vector<int> nums = { -1, 2, 1, -4 }; sort(nums.begin(), nums.end()); //-4 -1 1 2 cout << threeSumClosest(nums, 1); system("pause"); return 0; }
相关文档
Two Sum相关文章推荐
- 上海普通住房标准
- PAT (Advanced Level) 1036. Boys vs Girls (25)
- Ext JS4 架构你的应用 第3节 (官方文档翻译)
- ScrollView,ListView等带滚动条控件嵌套解决方案汇总
- Eclipse更换应用包名
- Activity的生命周期
- [POJ 2096] Collecting Bugs
- c#反射相关
- IOS 访问java提供的webservice接口,心魔之使
- Linux 3.9.10内核编译错误:multiple (or no) load addresses: This is incompatible with uImages的解决
- Database: Faces & Sketchs 人脸识别数据集
- Java的SPI(Service Provider Interface)规范
- Android屏幕自适应研究
- 学习Android SQLite 的介绍和使用(二)
- nginx禁止未绑定域名访问 并且强行断开连接
- SICP chapter2 put get
- 字体颜色对话框
- android studio 查找sha1
- su root 和su - root 的区别
- LeetCode 261. Graph Valid Tree