给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在恰好一个解。示例 1:输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
示例 2:输入:nums = [0,0,0], target = 1
输出:0具体步骤如下:
1、在数组 nums 中,进行遍历,每遍历一个值利用其下标 i,形成一个固定值 nums[i]。
2、使用前指针指向 left = i + 1 处,后指针指向 right = len(nums) - 1 处,也就是 结尾处,根据 sums = nums[i] + nums[left] + nums[right] 的结果,判断 sums 与 目标 target 的距离,如果更近则更新结果 a。
3、因为数组有序,如果 sums > target 则 right -= 1,如果 sums < target 则 left += 1,如果 sums == target 则说明距离为 0,直接返回结果。class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()res = nums[0] + nums[1] + nums[2]a = abs(res - target)for i in range(len(nums)):left = i + 1right = len(nums) - 1while left < right:sums = nums[i] + nums[left] + nums[right]if abs(sums - target) < a:a = abs(sums - target)res = sumsif sums > target:right -= 1elif sums < target:left += 1elif sums == target:return resreturn res

3. Leetcode 16. 最接近的三数之和 (数组-双向双指针)相关推荐

  1. Java实现 LeetCode 16 最接近的三数之和

    16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...

  2. leetcode —— 16. 最接近的三数之和

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...

  3. leetcode 16.最接近的三数之和

    题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如, ...

  4. LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)

    1. 题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. ...

  5. LeetCode 16. 最接近的三数之和 3Sum Closest

    给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...

  6. LeetCode 16最接近的三数之和

    力扣 思路 排序+双指针 枚举第一个数a,对剩下的两个元素b,c,希望它们的和最接近target-a 1.如果它们在原数组中枚举的范围没有任何规律可言,只能用两重循环来枚举所有情况 ->考虑对数 ...

  7. LeetCode 16 最接近的三数之和

    https://leetcode-cn.com/problems/3sum-closest/ 解决方案 class Solution {public int threeSumClosest(int[] ...

  8. Leetcode 16. 最接近的三数之和(3Sum Closest)

    解法一: class Solution { public:int threeSumClosest(vector<int>& nums, int target) {int close ...

  9. 5. Leetcode 15. 三数之和 (数组-双向双指针)

    给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组.注意:答案中不可以包含重复的三元 ...

最新文章

  1. 人工智能的发展,需要遵守的四个AI伦理原则
  2. 10 个 Python 工程师,9 个不合格!!
  3. Create a method for inserting accounts.
  4. Knative 基于流量的灰度发布和自动弹性实践
  5. Unity应用架构设计(6)——设计动态数据集合ObservableList
  6. MySQL数据库服务器搭建及基本管理
  7. MySQL distinct多个字段
  8. lightNLP:框架功能丰富,开箱即用
  9. Effective C# 原则42:使用特性进行简单的反射(译)
  10. emblog博客打开显示 数据库密码错误,请返回主页的解决办法!
  11. mmap和MappedByteBuffer
  12. android源码上面开发App
  13. 如何做出优质的Scratch作品
  14. 量子统计中的涨落和时间关联函数的概念(谐振子例子)
  15. python右对齐输出乘法表_Python 第6讲 打印九九乘法表
  16. 使用john破解密码
  17. 优动漫PAINT新建文件
  18. java高校人事管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  19. 知乎80万高赞的window10壁纸
  20. 免费赠送20个帆布包和2个咖啡杯活动规则必看(会搜索+复制粘贴就行)

热门文章

  1. Exchange Server 2013就地电子数据展示
  2. jQuery基础之(二)jQuery中的$
  3. Windows 8让程序员们忧心忡忡
  4. win32中GBK、UTF8的互转
  5. UDP 组播---你需要了解这些
  6. PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
  7. PAT甲级1102 Invert a Binary Tree:[C++题解]反转二叉树、递归
  8. 李永乐线性代数手写笔记-向量
  9. csdn博客如何更改图片大小
  10. java is number_数据类型----Number