leetcode(M) 3sum closest
来源:互联网 发布:mac收藏页面快捷键 编辑:程序博客网 时间:2024/05/16 11:56
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).
代码:
class Solution {public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); int i,j,k,res=nums[0]+nums[1]+nums[2],A; for( i=0;i<nums.size();++i){ j=i+1;k=nums.size()-1; while(j<k){ A=nums[i]+nums[j]+nums[k]; if(A-target==0) return target; res=abs(res-target)<abs(A-target)?res:A; if(A-target<0) ++j; if(A-target>0) --k; } } return res; }};
后来看到leetcode讨论区,这个应该再加上判断nums.size()<=3,return accumulate(nums.begin(),nums.end(),0), 其中accumulate是用于累计计算的函数,默认情况下是求和。而其中第三个参数便是和的初始值。如果数据为a0, …, an,则accumulate返回a0 + … + an + 初始值。
同时if(A-target<0) ++j; if(A-target>0) --k;
可以简化成 A-target<0?++j:--k;
代码最终版:
class solution{public:int threeSumClosest(vector<int>& nums, int target){if(nums.size()<=3) return accumulate(nums.begin(),nums.end(),0);sort(nums.begin(),nums.end());int i,j,k,A,res=nums[0]+nums[1]+nums[2];for(i=0;i<nums.size();++i){j=i+1;k=nums.size()-1;while(j<k){A=nums[i]+nums[j]+nums[k];res=abs(res-target)<abs(A-target)?res:A;(A-target)>0?--k:++j;}}return res;}};
0 0
- leetcode(M) 3sum closest
- 《LeetBook》leetcode题解(16):3Sum Closest [M]
- 16-m-3Sum Closest
- LeetCode: 3 Sum Closest
- leetcode - 3 sum closest
- leetcode 3Sum Closest
- LeetCode: 3Sum Closest
- [Leetcode]3Sum Closest
- Leetcode: 3SUM Closest
- LeetCode 3Sum Closest
- [Leetcode] 3Sum Closest
- LeetCode : 3Sum Closest
- LeetCode 3Sum Closest
- [LeetCode] 3Sum Closest
- 【leetcode】3Sum Closest
- [LeetCode]3Sum Closest
- LeetCode-3Sum Closest
- LeetCode:3Sum Closest
- python多线程抓取网页内容并写入MYSQL
- JAVA 文件上传到FTP 服务器
- POJ2195 Going Home(最小费用最大流模板题)(附用数组建图和用链式前向星建图代码)
- 读懂diff
- python2.7 廖学峰的学习笔记-电子邮件
- leetcode(M) 3sum closest
- iOS自动布局-Masonry-徐明伟
- MySQL安装成功之后启动错误 3534、28000和简单使用
- ubuntu上最使用jni最简单易懂的例子
- 欠拟合、过拟合及其解决方法
- 【DP总结】【字符串】【前缀树】【LA3942】
- java中的super,this和static
- extern和头文件在多文件编译过程中的作用
- 基于LVS负载均衡的高性能Web站点设计与实现