最接近的三数之和

news/2025/2/16 6:44:47/

给你一个长度为 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.从暴力枚举O(n3)优化到O(n2),固定i,然后剩下的j,k从本来的二重循环枚举O(n2)->采用双指针O(n1):

2.如何理解双指针的优化:

  • j和k,同时从左边开始跑,一起跑到最右边,j和k都不能往左只能往右----->O(n)
  • j和k,j作为left从最左端开始跑,一个作为right从最右端开始跑,二者一起向中间跑--->O(n)
  • 也正是因为只能一个从左端开始,一个从右端开始,所以才能向下降低一级复杂度
class Solution {public int threeSumClosest(int[] nums, int target) {Arrays.sort(nums);int ans = nums[0] + nums[1] + nums[2];for(int i=0;i<nums.length;i++) {int start = i+1, end = nums.length - 1;while(start < end) {int sum = nums[start] + nums[end] + nums[i];if(Math.abs(target - sum) < Math.abs(target - ans))ans = sum;if(sum > target)end--;else if(sum < target)start++;elsereturn ans;}}return ans;}
}


http://www.ppmy.cn/news/56541.html

相关文章

探究XServer中的字体系统:如何设置字体和字体缩放

Xorg server中的字体系统 随着计算机技术的不断发展&#xff0c;人们对于计算机的要求也越来越高。除了性能、功能和用户体验之外&#xff0c;用户对于计算机界面的要求也越来越高。而作为计算机界面的重要组成部分&#xff0c;字体系统在计算机界面中的地位也越来越重要。 字体…

【Java】继承和多态

目录 1.继承 1.1关键字super 1.2关键字protected 1.3关键字final 1.4组合 //小练习&#xff1a;三者乘积 2.多态 2.1重写override 2.2向上转型与向下转型 2.3运行时绑定 2.4多态 1.继承 定义&#xff1a;对子类的共性进行抽取并放到父类当中。 优点&#xff1a;达…

轻松剪辑、合并和添加特效,快速完成视频处理——掌握MoviePy库

&#x1f3ac;MoviePy: Python视频编辑&#x1f3a5; &#x1f60d; 简介 你喜欢看电影吗&#xff1f;&#x1f37f;不知道你有没有想过&#xff0c;如果能够自己编辑视频就好了&#xff01;&#x1f929; 没错&#xff0c;现在有了MoviePy&#xff0c;Python视频编辑库&…

【Unity-UGUI控件全面解析】| RawImage 显示纹理组件详解

🎬【Unity-UGUI控件全面解析】| RawImage 显示纹理组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 相机映射,可充当小地图4.2 播放视频💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN�…

App Store上架流程/苹果app发布流程

第一步&#xff1a;拥有自己的苹果开发者账号&#xff1a; 开发账号分为两类&#xff1a;99美元&#xff08;发布App Store用的&#xff0c;也就是上架苹果商店用这个&#xff09;&#xff1b;299美元&#xff08;企业授信证书&#xff0c;不用上架appstore 亦可使用。弊端&am…

论接口的封装能力

刚入职行业不到一年的菜鸟的心得体会&#xff0c;真实感受&#xff0c;不喜勿喷。 为什么想到封装呢&#xff1f;还不是因为踩过坑&#xff0c;最近越来越感觉&#xff0c;直接用一些开源库很不方便&#xff0c;而且用起来总是忘塞。 1.在工程开发过程中&#xff0c;我们不可避…

定位的特殊应用

注意&#xff1a;发生固定定位&#xff0c;绝对定位后&#xff0c;元素都变成了定位元素&#xff0c;默认高宽被内容撑开&#xff0c;则可以设置宽高&#xff1b;以下只针对绝对定位和固定定位的元素&#xff0c;不包括相对定位元素。 1.定位元素块的宽充满包含块 前提&#x…

C#基础 (类型转换_隐式转换)

什么是类型转换 类型转换就是不同变量类型之间的相互转换 隐式转换的基本规则——>不同类型之间自动转换 大范围装小范围 相同大类型之间的转换 有符号 long——>int——>short——>sbyte 可以用大范围装小范围的类型&#xff08;隐式转换&#xff09; 不能够用小范…