博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
59 最接近的三数之和
阅读量:5200 次
发布时间:2019-06-13

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

原题网址:

描述

给一个包含 n 个整数的数组 S, 找到和与给定整数 target 最接近的三元组,返回这三个数的和。

只需要返回三元组之和,无需返回三元组本身

您在真实的面试中是否遇到过这个题?  是

样例

例如 S = [-1, 2, 1, -4] and target = 1. 和最接近 1 的三元组是 -1 + 2 + 1 = 2.

挑战

O(n^2) 时间, O(1) 额外空间。

标签
排序
两根指针
数组
 
思路:与57题三数之和方法类似,只不过不需要去重复(当然去除也可以),而且要多定义一个差值,target与数组中三数之和的差值,遍历找到差值绝对值最小时的三数之和。
 
AC代码:
class Solution {public:    /**     * @param numbers: Give an array numbers of n integer     * @param target: An integer     * @return: return the sum of the three integers, the sum closest target.     */    int threeSumClosest(vector
&numbers, int target) { // write your code here int result=0; int diff=INT_MAX;//初始差值可以定义为int型最大值,也可以定义为num[0]+num[1]+num[2],要保证数组元素能够覆盖初值; int n=numbers.size(); sort(numbers.begin(),numbers.end()); for (int i=0;i
target) { k--; } else { j++; } if (abs(target-sum)

 

可以参考:

 
 

转载于:https://www.cnblogs.com/Tang-tangt/p/9119503.html

你可能感兴趣的文章
线程池
查看>>
把处理后的文件用open('txt', 'w') 和 print()输出出来 finally
查看>>
前端性能分析-HTTPWatch和dynaTrace
查看>>
java 锁3
查看>>
LeetCode #18 4Sum (M)
查看>>
JavaScript阻止表单提交
查看>>
D - Molar mass (UVA - 1586)
查看>>
Struts2 标签库详解2
查看>>
关于gcc内置的原子操作函数
查看>>
【BZOJ1930】【SHOI2003】吃豆豆
查看>>
物尽其用,不要老想着“以后有时间”
查看>>
自己动手写的音乐播放器
查看>>
http协议——cookie详解
查看>>
编写高质量代码改善C#程序的157个建议——建议134:有条件地使用前缀
查看>>
.NET基础 (18)特性
查看>>
tnagios - query handler
查看>>
凡人修炼之五大框架
查看>>
eclipse maven SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder
查看>>
接口100
查看>>
linux 新建用户、用户组 以及为新用户分配权限(转)
查看>>