LeetCode 3Sum Closest 最接近目标数的三个数和
来源:互联网 发布:cnc编程员工资高吗 编辑:程序博客网 时间:2024/05/06 06:45
3Sum Closest
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).
这道题和3Sum差不多,不过也有不一样的,主要是:
1 这里不用判断处理重复问题
2 要比较其中的三个数的和与目标数的差的大小。
class Solution {public:int threeSumClosest(vector<int> &num, int target){switch (num.size()){case 0: return 0;case 1:return num[0];case 2:return num[0] + num[1];default:break;}sort(num.begin(), num.end());int closet = 0;int sum = 0;int i = 0, j = 0, k = num.size()-1;int diff = INT_MAX;for (i = 0; i < k-1; i++){for (j = i+1; j < k;){sum = num[i] + num[j] + num[k];if (sum == target){return sum;}if (abs(sum-target) < diff){closet = sum;diff = abs(sum - target);}if (sum < target){j++;}else{k--;}}}return closet;}};
//2014-1-25 update8.24class Solution125 {public:int threeSumClosest(vector<int> &num, int target){int closest = INT_MAX;int res = 0;sort(num.begin(), num.end());for (int i = 0; i < num.size(); i++){for (int j = i+1, k = num.size()-1; j < k; ){int sum = num[i]+num[j]+num[k];if (sum == target) return sum;int t = abs(sum-target);if (t<closest){res = sum;closest = t;}if (sum < target) j++;else if (sum > target) k--;}while (i < num.size() && num[i] == num[i+1]) i++;}return res;}};
- LeetCode 3Sum Closest 最接近目标数的三个数和
- 3Sum Closest 三个数的和最接近某个值
- LeetCode 16 3Sum Closest 找出最接近指定target的三个数的和
- Leetcode刷题记——16. 3Sum Closest(最接近的三个数的和)
- LeetCode | 3Sum Closest(找到三个数使其和与target最接近)
- 【LeetCode-面试算法经典-Java实现】【016-3 Sum Closest(最接近的三个数的和)】
- [LeetCode]—3Sum Closest 求数组中三个数之和最接近给定target的组合
- 16. 3Sum Closest(找出和最接近给定值的三个数)
- 3Sum Closest 3个数字的和等于或者最接近与目标数
- LeetCode OJ-16.3Sum Closest(最接近三数和)
- 找出序列中求和最接近于target的三个数 3Sum Closest
- C++实现LeetCode(三个数的和最接近目标数)
- 3Sum Closest 三数最接近
- LeetCode OJ 之 3Sum Closest (三个数的和--二)
- 打印三个数相加和最接近目标整数的组合
- 3Sum Closest从数列中找到三个数之和最接近给定值
- LeetCode 16. 3Sum Closest(最接近的和)
- Leetcode #16 3Sum Closest 找3数之和最接近 解题小节
- Java类集--Iterator接口、ListIterator接口、foreach及Enumeration接口
- jQuery系列教程之Ajax:jQuery 中Ajax相关方法
- 云计算(三)- Hadoop2.2.0编译安装
- Log4j配置实例(log4j.xml)
- 捕捉返回键,实现退出确认(参考版)
- LeetCode 3Sum Closest 最接近目标数的三个数和
- 开放数据资源【持续增加】
- 数据结构 && 实验7 && 图的操作
- PHP+Jquery+Ajax实现用户登录与退出
- oracle如何通过同义词定位对象
- Object-C使用笔记: XCode5使用中碰到的小问题
- ios学习笔记之C语言篇(一):链表的基本操作
- Android-Universal-Image-Loader应用详解
- DB2查看历史备份