当前位置: 首页 > news >正文

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
/*给一个长度为 n 的整数数组 nums 和 一个目标值 target输入: nums = [-1,2,1,-4] target = -1输出: 2 解析: 与 target 最接近的和是 2(-1 + 2 + 1 = 2)
*/
class Solution {
public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(),nums.end()); // O(nlogn)int ans = nums[0] + nums[1] + nums[2];for(int i=0;i<nums.size();++i) {int start = i + 1,end = nums.size() - 1;while(start < end) {int sum = nums[i] + nums[start] + nums[end];if(abs(target - sum) < abs(target - ans)) ans = sum;if(sum > target) end--;else if(sum < target) start++;else return ans;}}return ans;}
};
// -1 2 1 -4  target = 1
/*-4 -1  1  2  |  |  |i  s  e 
*/
// 初始化
// ans : -4 + (-1) + 1 = -4/*-4 -1  1  2  |  |     |i  s     e 
*/
// sum = nums[i] + nums[s] + nums[e] = -3
// abs(target-sum) 和 abs(target-ans)
/*abs(target-sum) = abs(1-(-4)) = 5abs(target-ans) = abs(1-(-3)) = 4 abs(target-sum) < abs(target-ans) 
*/
// ans = sum = -3// 因为 sum(-3) < target(1),所以s右移,有可能效果更好/*-4 -1  1  2  |     |  |i     s  e 
*/
// sum = -4 + 1 + 2 = -1
// abs(target-sum) 和 abs(target-ans)
/*abs(target-sum) = abs(1-(-1)) = 2abs(target-ans) = abs(1-(-3)) = 4 abs(target-sum) < abs(target-ans) 
*/
// ans = sum = -1// 因为 sum(-1) < target(1),所以s右移,有可能效果更好
/*-4 -1  1  2  |        ||i        es 
*/
// 此时e和s重合,i右移
/*-4 -1  1  2  |  |  |i  s  e 
*/
// sum = -1 + 1 + 2 = 2
// abs(target-sum) 和 abs(target-ans)
/*abs(target-sum) = abs(1-(2)) = 1abs(target-ans) = abs(1-(-1)) = 2 abs(target-sum) < abs(target-ans) 
*/
// ans = sum = 2
// 因为 sum(2) < target(1),所以e左移,有可能效果更好// 此时e和s重合,i右移
/*-4 -1  1  2  |  ||  i  se
*/
// e和s重合,不足3个数,结束

 

相关文章:

leetcode 16.最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&#xff1a;…...

antd table 自定义排序图标

要在Ant Design的Table组件中自定义排序图标&#xff0c;可以使用sorter和sortDirections属性来实现自定义排序逻辑和图标。以下是一个示例&#xff0c;演示如何在Ant Design的Table中自定义排序图标&#xff1a; import React, { useState } from react; import { Table, Spa…...

第十九章、【Linux】开机流程、模块管理与Loader

19.1.1 开机流程一览 以个人计算机架设的 Linux 主机为例&#xff0c;当你按下电源按键后计算机硬件会主动的读取 BIOS 或 UEFI BIOS 来载入硬件信息及进行硬件系统的自我测试&#xff0c; 之后系统会主动的去读取第一个可开机的设备 &#xff08;由 BIOS 设置的&#xff09; …...

GMAC PHY介绍

1.1PHY接口发展 &#xff08;1&#xff09;MII支持10M/100Mbps&#xff0c;一个接口由14根线组成&#xff0c;它的支持还是比较灵活的&#xff0c;但是有一个缺点是因为它一个端口用的信号线太多。参考芯片&#xff1a;DP83848 、DM900A&#xff08;该芯片内部集成了MAC和PHY接…...

华为OD机考算法题:最远足迹

目录 题目部分 解读与分析 代码实现 题目部分 题目最远足迹难度易题目说明某探险队负责对地下洞穴进行探险。 探险队成员在进行探险任务时&#xff0c;随身携带的记录器会不定期地记录自身的坐标&#xff0c;但在记录的间隙中也会记录其他数据。探索工作结束后&#xff0c;…...

QScrollBar滚动条、QSlider滑块、 QDial表盘

QAbstractSlider 类、 QSCrollBar 类、 QSlider 类 一、 基本原理 1、 QAbstractSlider 继承自 QWidget&#xff0c;该类主要用于提供一个范围内的整数值&#xff0c; 2、 QAbstractSlider 类是 QScrollBar 类(滚动条)、 QSlider 类(滑块)、 QDial 类(表盘)的父类&#xff0c;因…...

Prometheus+Grafana可视化监控【MySQL状态】

文章目录 一、安装Docker二、安装MySQL数据库(Docker容器方式)三、安装Prometheus四、安装Grafana五、Pronetheus和Grafana相关联六、安装mysqld_exporter七、Grafana添加MySQL监控模板 一、安装Docker 注意&#xff1a;我这里使用之前写好脚本进行安装Docker&#xff0c;如果…...

五,编译定制rom并刷机实现硬改(二)

系列文章目录 第一章 安卓aosp源码编译环境搭建 第二章 手机硬件参数介绍和校验算法 第三章 修改安卓aosp代码更改硬件参数 第四章 编译定制rom并刷机实现硬改(一) 第五章 编译定制rom并刷机实现硬改(二) 第六章 不root不magisk不xposed lsposed frida原生修改定位 第七章 安卓…...

Modbus协议详解3:数据帧格式 - RTU帧 ASCII帧的区别

Modbus既然是一种通信协议&#xff0c;那它就应该有规定的通信格式用于在设备之间的指令接收与识别。 本文就着重讲讲Modbus协议的RTU帧和ASCII帧。 Modbus帧在串行链路上的格式如下&#xff1a; 在上图的格式中&#xff1a; 1&#xff09;地址域&#xff1a;指代的是子节点地址…...

认识数据分析

文章目录 1. 认识数据分析1.1 数据自身的三大属性1.2 建数仓 数据分析的工程技术1.3 数据分析解决问题的原理1.4 数据分析的具体流程1.5 数据的中心化和智能化1.6 数据分析的四种类型和六个方向 1. 认识数据分析 1.1 数据自身的三大属性 客观&#xff1a;用数字衡量和表现一件…...

Learn Prompt-ChatGPT 精选案例:写作博客

在 ChatGPT 的帮助下&#xff0c;文本内容的产出&#xff0c;尤其是撰写博客文章的过程得到了进一步的简化。你可以让 ChatGPT 激发你的灵感&#xff0c;也可以让它美化你的文章内容。 这里我们希望能通过prompt写出一篇以“ChatGPT对社会各行各业的影响”为主题的博客。 本页…...

《确保安全:PostgreSQL安全配置与最佳实践》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…...

Unity中Shader抓取屏幕并实现扭曲效果

文章目录 前言一、屏幕抓取&#xff0c;在上一篇文章已经写了二、实现抓取后的屏幕扭曲实现思路&#xff1a;1、屏幕扭曲要借助传入 UV 贴图进行扭曲2、传入贴图后在顶点着色器的输入参数处&#xff0c;传入一个 float2 uv : TEXCOORD&#xff0c;用于之后对扭曲贴图进行采样3、…...

深浅拷贝详解

深浅拷贝 经典真题 深拷贝和浅拷贝的区别&#xff1f;如何实现 深拷贝和浅拷贝概念 首先&#xff0c;我们需要明确深拷贝和浅拷贝的概念。 浅拷贝&#xff1a;只是拷贝了基本类型的数据&#xff0c;而引用类型数据&#xff0c;复制后也是会发生引用&#xff0c;我们把这种拷…...

@Scheduled 定时任务

Scheduled(cron"30 * * * * ?") 1.cron表达式格式&#xff1a; {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2.cron表达式各占位符解释&#xff1a; {秒数}{分钟} > 允许值范围: 0~59 ,不允许为空值&#xff0c;若值不合法&#xff0c;调度器将…...

丙烯酸共聚聚氯乙烯树脂

声明 本文是学习GB-T 42790-2023 丙烯酸共聚聚氯乙烯树脂. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了丙烯酸共聚聚氯乙烯树脂的外观、物化性能等技术要求&#xff0c;描述了相应的采样、试验方 法、检验规则、标志、包装、…...

Navicat导入Excel数据顺序变了

项目场景&#xff1a; Navicat导入Excel数据 问题描述 从Excel表格中导入数据到数据库中。但是&#xff0c;在导入的过程中&#xff0c;我们常会发现数据顺序出现了问题&#xff0c;导致数据错位&#xff0c;给数据的处理带来了极大的麻烦。 原因分析&#xff1a; 这个问题的…...

uni-app的生命周期

uni-app的生命周期包括应用生命周期和页面生命周期。 应用生命周期涵盖了整个uni-app应用的启动、运行和销毁过程&#xff0c;主要包括以下几个生命周期函数&#xff1a; onLaunch&#xff1a;应用初始化时触发&#xff0c;只触发一次。onShow&#xff1a;应用启动或从后台进…...

Vulnhub实战-DC9

前言 本次的实验靶场是Vulnhub上面的DC-9&#xff0c;其中的渗透测试过程比较多&#xff0c;最终的目的是要找到其中的flag。 一、信息收集 对目标网络进行扫描 arp-scan -l 对目标进行端口扫描 nmap -sC -sV -oA dc-9 192.168.1.131 扫描出目标开放了22和80两个端口&a…...

软件设计模式系列之七——原型模式

1 模式的定义 原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是通过复制现有对象来创建新对象&#xff0c;而不是使用构造函数。原型模式将对象的创建委托给原型对象&#xff0c;通过克隆&#xff08;复制&#xff09;来生成新…...

为什么你需要KKS-HF_Patch?解锁Koikatsu Sunshine完整游戏体验的终极指南

为什么你需要KKS-HF_Patch&#xff1f;解锁Koikatsu Sunshine完整游戏体验的终极指南 【免费下载链接】KKS-HF_Patch Automatically translate, uncensor and update Koikatsu Sunshine! 项目地址: https://gitcode.com/gh_mirrors/kk/KKS-HF_Patch 你是否曾经因为语言障…...

【RAG】【embeddings21】Isaacus嵌入模型

案例概述 llama-index-embeddings-isaacus包包含用于构建Isaacus法律AI嵌入模型应用程序的LlamaIndex集成。此集成允许您轻松连接并使用Kanon 2嵌入器 - 在大规模法律嵌入基准(MLEB)上世界上最准确的法律嵌入模型。 Isaacus嵌入支持任务特定优化&#xff1a; task"retr…...

7维度解析:专业设计师的开源字体解决方案

7维度解析&#xff1a;专业设计师的开源字体解决方案 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 如何评估一款开源中文字体的技术价值&#xff1f; 在数字设计领域&#xff0c;字…...

告别VS Code后,我在Trae里这样调教Dracula主题和代码片段(附同步指南)

从VS Code到Trae&#xff1a;打造极致Dracula主题与高效代码片段的完整指南 第一次在Trae里看到默认的白色主题时&#xff0c;我的眼睛几乎被闪瞎——这感觉就像半夜突然被强光手电筒直射瞳孔。作为从VS Code"叛逃"过来的开发者&#xff0c;我花了整整两周时间把Trae…...

从单颗粒到多相流:OpenFOAM+LIGGGHTS耦合参数调优心得与性能分析

从单颗粒到多相流&#xff1a;OpenFOAMLIGGGHTS耦合参数调优实战指南 在颗粒-流体耦合模拟领域&#xff0c;OpenFOAM与LIGGGHTS的组合已成为工业级仿真的黄金标准。但当我们从教学案例转向真实工程场景时&#xff0c;参数敏感性、计算效率与物理真实性之间的平衡往往成为困扰研…...

3步获取macOS完整安装包:Download Full Installer工具的终极指南

3步获取macOS完整安装包&#xff1a;Download Full Installer工具的终极指南 【免费下载链接】DownloadFullInstaller macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application. 项目地址: https://gitcode.com/gh_m…...

[特殊字符] 为什么99%的数字孪生都是“假的”?——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑

&#x1f680; 为什么99%的数字孪生都是“假的”&#xff1f;——镜像视界三维重构与视频反演技术重塑空间智能底层逻辑如果你接触过数字孪生项目&#xff0c;或者看过相关展示系统&#xff0c;大概率见过这样一种典型场景&#xff1a;一个极具视觉冲击力的三维城市或工业模型&…...

从PID控制器到语义分割:手把手教你复现PIDNet(附PyTorch代码与Cityscapes实战)

从PID控制器到语义分割&#xff1a;手把手教你复现PIDNet&#xff08;附PyTorch代码与Cityscapes实战&#xff09; 在计算机视觉领域&#xff0c;实时语义分割一直是个极具挑战性的任务。想象一下自动驾驶汽车需要在毫秒级时间内准确识别道路上的每个像素属于车辆、行人还是交通…...

FPGA设计优化:如何用Vivado的opt_directive提升性能(附真实案例)

FPGA设计优化&#xff1a;Vivado的opt_directive实战指南与性能提升策略 在FPGA设计流程中&#xff0c;逻辑优化是提升性能的关键环节。Xilinx Vivado Design Suite提供的opt_design命令及其directive参数&#xff0c;为工程师提供了精细控制优化策略的能力。本文将深入探讨如何…...

阿里Qwen3Guard-Gen-WEB实战:从HTTP到HTTPS的安全升级

阿里Qwen3Guard-Gen-WEB实战&#xff1a;从HTTP到HTTPS的安全升级 1. 引言 1.1 为什么需要安全升级 在当今互联网环境中&#xff0c;HTTP协议已经无法满足基本的安全需求。当您部署阿里Qwen3Guard-Gen-WEB这款强大的内容安全审核工具时&#xff0c;如果仍然使用HTTP协议&…...