博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【LeetCode】16. 3Sum Closest
阅读量:5904 次
发布时间:2019-06-19

本文共 1200 字,大约阅读时间需要 4 分钟。

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).

 

第一重循环先确定第一个数字,

然后第二重循环用双指针分别从两端遍历,使得三个数的和不断接近target。

若三个数的和等于target,则可以立即返回。

时间复杂度:O(n2)

class Solution {public:    int threeSumClosest(vector
&num, int target) { sort(num.begin(), num.end()); int size = num.size(); int diff = INT_MAX; int ret; for(int i = 0; i < size; i ++) { int j = i + 1; int k = size - 1; while(j < k) { int sum = num[i] + num[j] + num[k]; if(sum == target) return target; else if(sum < target) j ++; else k --; if(abs(sum - target) < diff) { diff = abs(sum - target); ret = sum; } } } return ret; }};

转载地址:http://amkpx.baihongyu.com/

你可能感兴趣的文章
封装一个日期时间选择器
查看>>
极值问题(acms)
查看>>
swift UI专项训练8 展示数据
查看>>
openstacks
查看>>
PHP5下单独编译php模块
查看>>
字体图标学习
查看>>
局域网网速变慢的故障细致分析
查看>>
oracle 远程tns配置
查看>>
7.1.3.3. Using the Rails console with ActionPack
查看>>
虚拟桌面带宽评估
查看>>
一起学shell(十一)之安全的shell脚本:起点
查看>>
VDR 2.0安装部署
查看>>
Microsoft® Deployment Toolkit 2010之快速部署Windows 7
查看>>
数据库中ID字段增长方式
查看>>
基于Liferay的平台下,portlet在各个模式下分别加载以<footer-portlet-javascript>定义的js文件的不可行性...
查看>>
大数据平台一键安装OS【定制化OS镜像制作】
查看>>
教学思路C#之入门三 定义变量及常用数据类型
查看>>
Python os.path.help
查看>>
外部的公开简介
查看>>
06.Django中用户的两种扩展方式(Profile和AbstractUser)
查看>>