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

18. 四数之和 - 力扣

1. 题目

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):

  • 0 <= a, b, c, d < n
  • abc 和 d 互不相同
  • nums[a] + nums[b] + nums[c] + nums[d] == target

你可以按 任意顺序 返回答案 。

2. 示例

3. 分析

做这题之前先做这道:三数之和,对应题解:三数之和 - 题解

四数之和无非就是再多套一层循环,即再增加一个固定数。之后就利用双指针寻找 两数之和 == target - 第一个固定数 - 第二个固定数

class Solution {
public:vector<vector<int>> fourSum(vector<int>& nums, int target) {sort(nums.begin(), nums.end());vector<vector<int>> ret;int n = nums.size();for(int i = 0; i < n;) // 第一个固定数{for(int j = i + 1; j < n;) // 第二个固定数{// 双指针int left = j + 1, right = n - 1;long long aim = (long long)target - nums[i] - nums[j];while(left < right){int sum = nums[left] + nums[right];if(sum > aim) right--;else if(sum < aim) left++;else{ret.push_back({nums[i], nums[j], nums[left++], nums[right--]});while(left < right && nums[left] == nums[left-1]) left++; // 去重左指针元素while(right < right && nums[right] == nums[right+1]) right--; // 去重右指针元素}}j++;while(j < n && nums[j] == nums[j-1]) j++; // 去重第二个固定数指针元素}i++;while(i < n && nums[i] == nums[i-1]) i++; // 去重第一个固定数指针元素}return ret;}
};

相关文章:

18. 四数之和 - 力扣

1. 题目 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0c;则认为两个四元组重复&#xff09;&#xff1a; 0 …...

[vue2]深入理解路由

本节目标 单页应用程序路由概念VueRouter基本使用组件分类存放路由模块封装声明式导航其他路由配置路由模式编程式导航案例-面经基础版 单页应用程序 单页应用程序(SPA): 所有的功能都在一个HTML页面上实现 网易云音乐: 网易云音乐 多页应用程序(MPA): 不同功能通过切换不同…...

搜维尔科技:SenseGlove为什么不同的手套尺寸对触觉技术至关重要

senseglove适当的尺寸可确保: 1.精确的运动跟踪:合适的手套保持部件稳定&#xff0c;防止不准确的运动跟踪 2.有效的力反馈:我们基于肌腱的力反馈系统通过对手套的绳子施加力来模拟肌肉的运动。不稳定的配合会影响反馈&#xff0c;使其感觉虚弱和柔软。 3.舒适性和敏感性:我…...

java算法:选择排序

文章标题 概述与基本实现优缺点尝试优化 概述与基本实现 选择排序&#xff08;Selection Sort&#xff09;是一种简单直观的排序算法。它的基本思想是每次从待排序的元素中选择最小&#xff08;或最大&#xff09;的元素&#xff0c;放置在已排序的部分的末尾&#xff0c;直到…...

helm升级部署时出现升级挂起状态处理

问题 在使用helm 升级命令时&#xff0c;升级命令如下&#xff1a; helm upgrade -i -f ./values-prod.yaml myapp ./ -n myns --create-namespace中途因为网络原因&#xff0c;再次运行上面升级命令时出现&#xff0c;如下错误&#xff1a; Error: UPGRADE FAILED: another …...

16、架构-可观测性-事件日志详细解析

事件日志 事件日志是记录系统运行期间发生的离散事件的关键工具。它们在系统的可观测性中起着至关重要的作用&#xff0c;帮助开发者和运维人员追踪、分析和解决系统问题。以下是对事件日志处理各个方面的详细解析&#xff0c;并结合具体的数据案例和技术支撑。 输出 日志输出…...

Java数据结构与算法(买卖股票的最佳时机二贪心算法)

前言 买卖股票最佳时机二&#xff0c;此时不限次数的买卖的要求获得的利益最大化。暴力算法依旧可行&#xff0c;可以参考之前的练习。 . - 力扣&#xff08;LeetCode&#xff09; 贪心算法原理参考:Java数据结构与算法(盛水的容器贪心算法)-CSDN博客 实现原理 1.定义最大…...

t265 坑

Streaming T265 video over USB 2.1 is unreliable, please use USB 3 or only stream poses 试着用windows 打开也是默认是USB2打开&#xff0c; 英伟达orin nx jetpack 也一样 不知道为啥。并且一旦打开飞控 microxrceagent &#xff0c; t265 的位置就飞。 配置ros2 的lau…...

【LLM之RAG】Adaptive-RAG论文阅读笔记

研究背景 文章介绍了大型语言模型&#xff08;LLMs&#xff09;在处理各种复杂查询时的挑战&#xff0c;特别是在不同复杂性的查询处理上可能导致不必要的计算开销或处理不足的问题。为了解决这一问题&#xff0c;文章提出了一种自适应的查询处理框架&#xff0c;动态选择最合…...

介绍react

什么是React React是一个用于构建用户界面的JavaScript库。 传统构建页面的方式 <script>document.getElementById(app).addEventListener(click, () > {console.log()});const div docuemnt.createElement(div)// ... </script> 早期&#xff0c;用JavaSc…...

网络爬虫概述

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 网络爬虫&#xff08;又被称为网络蜘蛛、网络机器人&#xff0c;在某社区中经常被称为网页追逐者&#xff09;&#xff0c;可以按照指定的规则&#…...

取证工作: SysTools SQL Log Analyzer, 完整的 SQL Server 日志取证分析

天津鸿萌科贸发展有限公司是 Systools 系列软件的授权代理商。 SysTools SQL Log Analyzer 是 Systools 取证工具系列之一&#xff0c;用于调查 SQL Server 事务日志&#xff0c;以对数据库篡改进行取证分析。 什么是 SQL Server 事务日志&#xff1f; 在深入研究 SQL 事务日…...

蓝牙耳机怎么连接电脑?轻松实现无线连接

蓝牙耳机已经成为许多人生活中不可或缺的一部分&#xff0c;不仅可以方便地连接手机&#xff0c;还能轻松连接电脑&#xff0c;让我们在工作和娱乐时享受无线的自由。然而&#xff0c;对于一些用户来说&#xff0c;将蓝牙耳机与电脑连接可能会遇到一些问题。本文将介绍蓝牙耳机…...

4.音视频 AAC SSAASS

目录 AAC 1.什么是ADIF和ADTS&#xff1f; 2.ADTS的数据结构是怎样的&#xff1f; SSA/ASS 1.SSA/ASS的基本结构 AAC AAC(Advanced Audio Coding&#xff0c;高级音频编码)是一种声音数据的文件压缩格式。AAC分为ADIF和ADTS两种文件格式。 1.什么是ADIF和ADTS&#xff…...

每日5题Day24 - LeetCode 116 - 120

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;116. 填充每个节点的下一个右侧节点指针 - 力扣&#xff08;LeetCode&#xff09; /* // Definition for a Node. class Node {public int val;public Node left;…...

在笔记本电脑上使用 LLMs 的 5 种方法

在网上使用 ChatGPT 很简单&#xff0c;只需有网络连接和好的浏览器即可。但这样做可能会泄露您的隐私和数据。OpenAI 存储了您的提示和其他元数据以重新训练模型。对于一些人来说可能不成问题&#xff0c;但注重隐私的人可能更愿意在本地使用这些模型&#xff0c;不受外部跟踪…...

Linux内存从0到1学习笔记(8.15 MMU/IOMMU/SMMU概览)

一, 什么是MMU? MMU(Memory Management Unit 内存管理单元),即内存管理单元,是计算机硬件中的一个重要组件,主要负责处理中央处理器(CPU)的内存访问请求。 其工作原理如下: 当程序发出内存访问请求,包括读取或写入操作以及逻辑地址(虚拟地址)。然后,MMU根据页表…...

Intellij IDEA中怎么配置Maven?

在IntelliJ IDEA中配置Maven非常简单&#xff0c;以下是详细步骤&#xff1a; 步骤1&#xff1a;安装Maven 首先确保你的计算机上已经安装了Maven。如果没有安装&#xff0c;你可以从Apache Maven官网下载并安装&#xff1a;https://maven.apache.org/download.cgi 步骤2&am…...

操作系统-内存管理

虚拟内存 操作系统会提供⼀种机制&#xff0c;将不同进程的虚拟地址和不同内存的物理地址映射起来。 两个概念&#xff1a; 程序所使⽤的内存地址叫做虚拟内存地址&#xff08;Virtual Memory Address&#xff09;实际存在硬件⾥⾯的空间地址叫物理内存地址&#xff08;Physi…...

C++中的解释器模式

目录 解释器模式&#xff08;Interpreter Pattern&#xff09; 实际应用 算术表达式解释器 布尔表达式解释器 总结 解释器模式&#xff08;Interpreter Pattern&#xff09; 解释器模式是一种行为设计模式&#xff0c;它定义了一种语言的文法表示&#xff0c;并使用解释器…...

Verilog时钟分频:从原理到工程实践,避坑指南与最佳方案

1. 项目概述&#xff1a;为什么时钟分频是数字设计的基石在数字电路和FPGA设计里&#xff0c;时钟信号就像是整个系统的心跳。它驱动着寄存器、状态机和数据流&#xff0c;确保所有操作在正确的节拍下同步进行。但现实情况是&#xff0c;我们手头的时钟源往往只有一个固定的频率…...

当声带萎缩遇上AI建模:ElevenLabs老年女性语音不可忽视的5项生理声学特征补偿技术

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;声带萎缩与老年女性语音建模的交叉挑战 随着人口老龄化加剧&#xff0c;构建高保真、个体化老年女性语音合成模型面临独特的生理—声学耦合难题。声带萎缩导致基频降低、抖动率&#xff08;jitter&…...

I2C虚拟项目笔记(二)-virtual sequence实战:中断与异常场景构建

1. 为什么需要模拟中断与异常场景&#xff1f; 在实际的I2C总线通信中&#xff0c;各种异常情况时有发生。比如从设备突然掉电导致无应答&#xff08;NACK&#xff09;&#xff0c;或者主设备在发送数据时遭遇干扰导致传输中断。这些场景如果不在验证阶段充分覆盖&#xff0c;…...

揭秘高效磁盘空间管理:专业磁盘分析工具WinDirStat完全指南

揭秘高效磁盘空间管理&#xff1a;专业磁盘分析工具WinDirStat完全指南 【免费下载链接】windirstat WinDirStat is a disk usage statistics viewer and cleanup tool for Microsoft Windows 项目地址: https://gitcode.com/gh_mirrors/wi/windirstat 你是否曾为Window…...

Linux微信小程序开发终极指南:从零搭建完整开发环境

Linux微信小程序开发终极指南&#xff1a;从零搭建完整开发环境 【免费下载链接】wechat-web-devtools-linux 适用于微信小程序的微信开发者工具 Linux移植版 项目地址: https://gitcode.com/gh_mirrors/we/wechat-web-devtools-linux 还在为Linux系统无法进行微信小程序…...

ORTC与AI融合:从实时传输到智能通信的架构演进与实践

1. 项目概述&#xff1a;当实时通信遇上人工智能最近几年&#xff0c;我身边不少做音视频通信和做AI算法的朋友&#xff0c;聊天时总绕不开一个话题&#xff1a;ORTC&#xff08;Object Real-Time Communication&#xff09;和AI&#xff0c;这两者到底能擦出什么样的火花&…...

量化交易自动化框架设计:从API客户端到策略回测的工程实践

1. 项目概述与核心价值最近在量化交易和自动化策略开发的圈子里&#xff0c;一个名为cbonoz/kalshi-skill的项目引起了我的注意。乍一看&#xff0c;这像是一个针对特定交易平台 Kalshi 的技能或工具包。对于不熟悉的朋友&#xff0c;Kalshi 是一个新兴的事件合约交易平台&…...

英雄联盟终极工具箱:5个实用技巧让你游戏效率翻倍

英雄联盟终极工具箱&#xff1a;5个实用技巧让你游戏效率翻倍 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari英雄联盟工具箱是一…...

从SCI到中文核心:Endnote自定义Style保姆级教程,打造你的专属GB/T7714-2005模板

从SCI到中文核心&#xff1a;Endnote自定义Style保姆级教程&#xff0c;打造你的专属GB/T7714-2005模板 当你需要向不同期刊投稿时&#xff0c;是否遇到过参考文献格式反复调整的困扰&#xff1f;一个固定的Endnote模板往往难以满足多样化的投稿需求&#xff0c;尤其是中英文混…...

ParsecVDisplay终极指南:解锁Windows虚拟显示器完整解析

ParsecVDisplay终极指南&#xff1a;解锁Windows虚拟显示器完整解析 【免费下载链接】parsec-vdd ✨ Perfect virtual display for game streaming 项目地址: https://gitcode.com/gh_mirrors/pa/parsec-vdd 你是否曾渴望拥有额外的屏幕空间&#xff0c;却受限于物理显示…...