3Sum Closest
来源:互联网 发布:汛情数据统计 编辑:程序博客网 时间:2024/06/18 08:15
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.
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).
描述:给定一个数组和一个目标值target。求在数组中存在3个数的和最接近target
解决思路:初始化res=nums[0]+nums[1+nums[2],而后对于每个nums[i],执行下列过程
(1)for i from 0 to nums.size()-3。每个nums[i],其实start=i+1,end=nums.size()-1,求tmp=nums[i]+nums[start]+nums[end]的和
(2)如果abs(tmp-target)<abs(res-target),则说明tmp比res更接近target,更新res。
(3)如果tmp==target,则直接返回。否则if tmp>target--->end--;else tmp<target--->start++,这样是的tmp和target更接近。
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { int len=nums.size(); sort(nums.begin(),nums.end());//sort the nums int res=nums[0]+nums[1]+nums[2];//init int sum_tmp;//保存临时和 int left,right; for(int i=0;i<len-2;i++) { left=i+1; right=len-1; while(left<right) { sum_tmp=nums[i]+nums[left]+nums[right]; if(abs(sum_tmp-target)<abs(res-target)) res=sum_tmp; if(sum_tmp<target) left++; else if(sum_tmp>target) right--; else return target; } } return res; }};
0 0
- 3 Sum & 3 Sum Closest
- 【Leetcode】3Sum Closest (Sum)
- LeetCode: 3 Sum Closest
- 3Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- leetcode002:3sum closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- 3Sum Closest
- 3Sum Closest
- 3Sum Closest
- [LeetCode] 3Sum Closest
- 界面之下:还原真实的 MVC、MVP、MVVM 模式
- 剑指Offer:打印1到最大的N位数
- AndroidStudio或IDEA中连接github失败:Can't login: Connect to api.github.com:443
- Unity协程(Coroutine)原理深入剖析
- 基于JAVA的黄金数据接口调用代码实例
- 3Sum Closest
- 实现页面登录后仍然跳回当前页面
- 对于结构化异常处理(SEH)的进一步探索
- HTTP响应头信息和请求头信息详解
- 03 Struts2入门案例
- java线程
- Java JSP(一) 基本原理和九个隐含对象
- Java正则解析命令行中大括号中的命令
- [bzoj1609]: [Usaco2008 Feb]Eating Together麻烦的聚餐 递推