一.题目链接:https://leetcode.com/problems/3sum-closest/

二.题目大意:

 给定一个数组A和一个目标值target,要求从数组A中找出3个数来,使得这三个数的和最接近target。

三.题解:

这道题实质就是3sum(http://www.cnblogs.com/wangkundentisy/p/9079622.html)问题的变形,而且题目假设的是解是唯一的,所以该题甚至都不用考虑重复情况了。所以只需在3sum问题中,判断下三个元素的和与target的差值,并根据差值进行赋值即可。

代码如下:

class Solution {
public:int threeSumClosest(vector<int>& nums, int target) {int len = nums.size();int differ = 0x7fffffff;//初始化差值int sum = 0;if(len < 3)return 0;sort(nums.begin(),nums.end());for(int i = 0; i < len; i++){if(i != 0 && nums[i] == nums[i -1])continue;int j = i + 1, k = len - 1;while(j < k){if(nums[i]+ nums[j] + nums[k] == target){return target;//由于题目假设的是解释唯一的,所以如果遇到正好和为target的情况,可以立马返回}else if(nums[i] + nums[j] + nums[k] < target){int temp = target - (nums[i] + nums[j] + nums[k]);if(temp < differ)//找到离target差异最小的一组数据{sum = nums[i] + nums[j] + nums[k];differ = temp;}j++;}else{int temp = (nums[i] + nums[j] + nums[k]) - target;if(temp < differ){sum = nums[i] + nums[j] + nums[k];differ = temp;}k--;}}}return sum;}
};

由于本题基本与3sum问题一致,所以注意事项直接看3sum问题就行了。

转载于:https://www.cnblogs.com/wangkundentisy/p/9082007.html

LeetCode——16. 3Sum Closest相关推荐

  1. LeetCode - 16. 3Sum Closest

    16. 3Sum Closest Problem's Link -------------------------------------------------------------------- ...

  2. LeetCode 16 3Sum Closest(最接近的3个数的和)

    翻译 给定一个有n个整数的数组S,找出S中3个数,使其和等于一个给定的数,target.返回这3个数的和,你可以假定每个输入都有且只有一个结果.例如,给定S = {-1 2 1 -4},和target ...

  3. LeetCode 16 3Sum Closest

    问题:给出一个数组nums,及目标数target,要求找出数组中三个数之和与target最接近的数 思路:第一种方法是使用三种循环,依次遍历,看三个数之和与目标数最拉近,同时更新.该算法时间复杂度为O ...

  4. leetcode 16 -- 3Sum Closest

    3Sum Closest 题目: Given an array S of n integers, find three integers in S such that the sum is close ...

  5. leetcode 16. 3Sum Closest | 16. 最接近的三数之和(双指针)

    题目 https://leetcode.com/problems/3sum-closest/ 题解 方法1:固定 L,双指针找 M.R 时间复杂度 O(n^2),推荐此方法. 证明不会有元素遗漏,详见 ...

  6. 【leetcode】16 3Sum Closest

    描述 给定一个数字集合 S 以及一个数字 target,需要从集合中找出3个数字的和与这个 target的值最接近(绝对值最小) 样例 Input: S = [-1, 2, 1, -4], targe ...

  7. 【LeetCode】3Sum Closest 解题报告

    [题目] Given an array S of n integers, find three integers in S such that the sum is closest to a give ...

  8. 16. 3Sum Closest

    2019独角兽企业重金招聘Python工程师标准>>> 和 3Sum 很像,与之不同的是,不再是求三个数的和是不是为0, 而是看三个数的和与target的差是否为最小,只需记录当前最 ...

  9. [LeetCode][Java] 3Sum Closest

    题目: Given an array S of n integers, find three integers in S such that the sum is closest to a given ...

最新文章

  1. 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!
  2. 25个Pandas最实用技巧
  3. vue手机端回退_推荐3个快速开发平台 前后端都有 接私活又有着落了
  4. 【NLP】使用BERT完成NLP任务
  5. 函数域中申请堆空间出函数后不会自动释放
  6. 在AndroidStudio中数据存储第三方数据管理Bmob的使用
  7. [编程入门]带参数宏定义练习:定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
  8. Unity Shader 噪声消融特效 - 剑灵死亡特效
  9. 电商金额计算的 4 个坑,千万注意了!
  10. python快速编程入门课本中的名片管理器_Python-名片管理器
  11. caxa发生文件读写异常_文件和异常
  12. android smb同步,SMBsync安卓下最好的同步备份工具
  13. linux 打开关闭CPU超线程和查看逻辑CPU的个数
  14. html地图周边搜索,高德地图API实现定位、地点搜索和周边搜索(H5/Vue/微信小程序)...
  15. 为skynet的crypt库扩展一些加密(摘要)算法支持
  16. 司凤为璇玑抗鸿蒙熔炉,琉璃:结局最惨的是司凤和若玉?而是让人心疼的他,他死的太可惜...
  17. 直接从数据库中查询数据生成email附件(excel)
  18. 学习ASP编程必会的代码
  19. 梦幻花-东野圭吾读书笔记
  20. CentOS 查看隐藏文件的命令

热门文章

  1. tldr一个精简的man手册替代品
  2. STM32,CAN总线过滤器的设置详细讲解
  3. 管道、通道、管程的区别
  4. docker 必然用到的一些指令
  5. Socket is closed 可能原因
  6. Rust切换allocator
  7. SpringBoot中请求映射的原理(源码)
  8. C++单链表的建立和遍历
  9. UNIX再学习 -- 信号
  10. UNIX再学习 -- 再识