【leetcode】16. 3Sum Closest
来源:互联网 发布:生活方式 知乎 编辑:程序博客网 时间:2024/05/01 19:38
/** * 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
0 0
- LeetCode 16. 3Sum Closest
- LeetCode --- 16. 3Sum Closest
- [Leetcode] 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- [leetcode] 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- LeetCode - 16. 3Sum Closest
- [LeetCode]16. 3Sum Closest
- LeetCode 16. 3Sum Closest
- LeetCode *** 16. 3Sum Closest
- Leetcode 16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【LeetCode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 【leetcode】16. 3Sum Closest
- leetcode 16. 3Sum Closest
- 学习Android SQLite 的介绍和使用(二)
- Eclipse更换应用包名
- [SCU 4508] 雷神之路 (多矩阵快速幂)
- 专题三 Problem D
- 一线触摸tslib移植完全说明--转载
- 【leetcode】16. 3Sum Closest
- HashCode 使用产生Utils类
- 负数中的运算付重载(1)
- linux系统644、755、777权限详解
- 学习排序算法2--插入排序
- android webview数据交互
- 关于在android中,如何一步到位,全局替换控件样式的一些看法
- 经验总结 2016年安徽省程序设计竞赛总结
- hdu 1839(二分+最短路)