3. Leetcode 16. 最接近的三数之和 (数组-双向双指针)
给你一个长度为 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. 最接近的三数之和 (数组-双向双指针)相关推荐
- Java实现 LeetCode 16 最接近的三数之和
16. 最接近的三数之和 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存 ...
- leetcode —— 16. 最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...
- leetcode 16.最接近的三数之和
题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如, ...
- LeetCode 16. 最接近的三数之和(固定左端+滑动窗口)
1. 题目 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. ...
- LeetCode 16. 最接近的三数之和 3Sum Closest
给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如,给定数 ...
- LeetCode 16最接近的三数之和
力扣 思路 排序+双指针 枚举第一个数a,对剩下的两个元素b,c,希望它们的和最接近target-a 1.如果它们在原数组中枚举的范围没有任何规律可言,只能用两重循环来枚举所有情况 ->考虑对数 ...
- LeetCode 16 最接近的三数之和
https://leetcode-cn.com/problems/3sum-closest/ 解决方案 class Solution {public int threeSumClosest(int[] ...
- Leetcode 16. 最接近的三数之和(3Sum Closest)
解法一: class Solution { public:int threeSumClosest(vector<int>& nums, int target) {int close ...
- 5. Leetcode 15. 三数之和 (数组-双向双指针)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组.注意:答案中不可以包含重复的三元 ...
最新文章
- 人工智能的发展,需要遵守的四个AI伦理原则
- 10 个 Python 工程师,9 个不合格!!
- Create a method for inserting accounts.
- Knative 基于流量的灰度发布和自动弹性实践
- Unity应用架构设计(6)——设计动态数据集合ObservableList
- MySQL数据库服务器搭建及基本管理
- MySQL distinct多个字段
- lightNLP:框架功能丰富,开箱即用
- Effective C# 原则42:使用特性进行简单的反射(译)
- emblog博客打开显示 数据库密码错误,请返回主页的解决办法!
- mmap和MappedByteBuffer
- android源码上面开发App
- 如何做出优质的Scratch作品
- 量子统计中的涨落和时间关联函数的概念(谐振子例子)
- python右对齐输出乘法表_Python 第6讲 打印九九乘法表
- 使用john破解密码
- 优动漫PAINT新建文件
- java高校人事管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
- 知乎80万高赞的window10壁纸
- 免费赠送20个帆布包和2个咖啡杯活动规则必看(会搜索+复制粘贴就行)
热门文章
- Exchange Server 2013就地电子数据展示
- jQuery基础之(二)jQuery中的$
- Windows 8让程序员们忧心忡忡
- win32中GBK、UTF8的互转
- UDP 组播---你需要了解这些
- PAT甲级1101 Quick Sort:[C++题解]DP、快速排序划分个数、快排
- PAT甲级1102 Invert a Binary Tree:[C++题解]反转二叉树、递归
- 李永乐线性代数手写笔记-向量
- csdn博客如何更改图片大小
- java is number_数据类型----Number