LeetCode——16. 3Sum Closest
一.题目链接: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相关推荐
- LeetCode - 16. 3Sum Closest
16. 3Sum Closest Problem's Link -------------------------------------------------------------------- ...
- LeetCode 16 3Sum Closest(最接近的3个数的和)
翻译 给定一个有n个整数的数组S,找出S中3个数,使其和等于一个给定的数,target.返回这3个数的和,你可以假定每个输入都有且只有一个结果.例如,给定S = {-1 2 1 -4},和target ...
- LeetCode 16 3Sum Closest
问题:给出一个数组nums,及目标数target,要求找出数组中三个数之和与target最接近的数 思路:第一种方法是使用三种循环,依次遍历,看三个数之和与目标数最拉近,同时更新.该算法时间复杂度为O ...
- leetcode 16 -- 3Sum Closest
3Sum Closest 题目: Given an array S of n integers, find three integers in S such that the sum is close ...
- leetcode 16. 3Sum Closest | 16. 最接近的三数之和(双指针)
题目 https://leetcode.com/problems/3sum-closest/ 题解 方法1:固定 L,双指针找 M.R 时间复杂度 O(n^2),推荐此方法. 证明不会有元素遗漏,详见 ...
- 【leetcode】16 3Sum Closest
描述 给定一个数字集合 S 以及一个数字 target,需要从集合中找出3个数字的和与这个 target的值最接近(绝对值最小) 样例 Input: S = [-1, 2, 1, -4], targe ...
- 【LeetCode】3Sum Closest 解题报告
[题目] Given an array S of n integers, find three integers in S such that the sum is closest to a give ...
- 16. 3Sum Closest
2019独角兽企业重金招聘Python工程师标准>>> 和 3Sum 很像,与之不同的是,不再是求三个数的和是不是为0, 而是看三个数的和与target的差是否为最小,只需记录当前最 ...
- [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 ...
最新文章
- 如何用CMD递归查看Windows中文件夹结构 也叫做树形结构!
- 25个Pandas最实用技巧
- vue手机端回退_推荐3个快速开发平台 前后端都有 接私活又有着落了
- 【NLP】使用BERT完成NLP任务
- 函数域中申请堆空间出函数后不会自动释放
- 在AndroidStudio中数据存储第三方数据管理Bmob的使用
- [编程入门]带参数宏定义练习:定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。
- Unity Shader 噪声消融特效 - 剑灵死亡特效
- 电商金额计算的 4 个坑,千万注意了!
- python快速编程入门课本中的名片管理器_Python-名片管理器
- caxa发生文件读写异常_文件和异常
- android smb同步,SMBsync安卓下最好的同步备份工具
- linux 打开关闭CPU超线程和查看逻辑CPU的个数
- html地图周边搜索,高德地图API实现定位、地点搜索和周边搜索(H5/Vue/微信小程序)...
- 为skynet的crypt库扩展一些加密(摘要)算法支持
- 司凤为璇玑抗鸿蒙熔炉,琉璃:结局最惨的是司凤和若玉?而是让人心疼的他,他死的太可惜...
- 直接从数据库中查询数据生成email附件(excel)
- 学习ASP编程必会的代码
- 梦幻花-东野圭吾读书笔记
- CentOS 查看隐藏文件的命令