Leetcode 15:三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请
你返回所有和为 0 且不重复的三元组。
注意:答案中不可以包含重复的三元组。
解题思路:
本题的关键是如何去重。
public static List<List<Integer>> threeSum(int[] nums) {int left,right,sum;int len=nums.length;List<List<Integer>> result=new ArrayList<>();Arrays.sort(nums); //对数组进行排序for(int i=0;i<len;i++){//nums[i]大于0时,不可能组成三元组if (nums[i] > 0) {return result;}if(i>0 && nums[i]==nums[i-1]){ //对a去重continue;}left=i+1;right=len-1;while (left<right){sum=nums[i]+nums[left]+nums[right];//满足条件if(sum<0){left++;}else if(sum>0){right--;}else{List list=new ArrayList<>();list.add(nums[i]);list.add(nums[left]);list.add(nums[right]);result.add(list);//result.add(Arrays.asList(nums[i],nums[left],nums[right]));// 对b、c去重while (right > left && nums[right] == nums[right - 1]) right--;while (right > left && nums[left] == nums[left + 1]) left++;left++;right--;}}}return result;}
相关文章:
Leetcode 15:三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 解题思…...
npm常用命令与操作篇
npm简介 npm是什么 npm 的英文是,node package manager,是 node 的包管理工具 为什么需要npm 类比建造汽车一样,如果发动机、车身、轮胎、玻璃等等都自己做的话,几十年也做不完。但是如果有不同的厂商,已经帮我们把…...
Go 语言的垃圾回收机制:自动化内存管理
在编程的世界中,内存管理一直是一个重要的问题。不正确的内存管理可能导致内存泄漏和程序崩溃。Go 语言以其高效的垃圾回收机制而闻名,使开发者从手动内存管理的烦恼中解脱出来。本文将深入探讨Go语言的垃圾回收机制,介绍它的工作原理以及如何…...
java-各种成员变量初始化过程-待完善
前置条件 一、本文章讨论的成员变量 public static final String aa "aa";public static final Integer bb 1;public static final Students cc new Students();public static String aa1 "aa";public static Integer bb1 1;public static String bb2…...
059:mapboxGL监听键盘事件,通过eastTo控制左右旋转
第059个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中监听键盘事件,通过eastTo控制左右旋转。 本例通过easeTo方法来加减一定数值的bearing角度,通过.addEventListener的方法来监听键盘的按键动作。这里一定要设置interactive: false, 否则展现不出来旋转效果。 直…...
jdk对linux cgroup v2容器化环境识别情况
Linux各发行版将cgroups v2作为默认的情况如下: Container-Optimized OS(从 M97 开始)Ubuntu(从 21.10 开始,推荐 22.04)Debian GNU/Linux(从 Debian 11 Bullseye 开始)Fedora&…...
vue3后台管理系统之顶部tabbar组件搭建
1.1静态页面搭建 <template><div class"tabbar"><div class"tabbar_left"><!-- 面包屑 --><Breadcrumb /></div><div class"tabbar_right"><!-- 设置 --><Setting /></div></di…...
安装Apache2.4
二、安装配置Apache: 中文官网:Apache 中文网 官网 (p2hp.com) 我下的是图中那个版本,最新的64位 下载下后解压缩。如解压到D:\tool\Apache24 PS:特别要注意使用的场景和64位还是32位版本 2、修改Apcahe配置文件 2.1配置Apache…...
KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(9)
接前一篇文章:KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(8) 上一回讲完了drm_internal_framebuffer_create函数中的framebuffer_check函数中的drm_get_format_info函数,本文继续讲解framebuffer_check函数中的余下步骤。为了便于理解,再次贴出framebuffer_ch…...
Win10使用nginx,注册到服务设置自启与后台运行,解决 Access is denied 问题
安装 nginx 下载 nginx 官网下载页面:https://nginx.org/en/download.html直接选择当前最新 window 版本的或找到自己需要的版本下载即可 安装使用 下载完成后是有一个压缩包文件,直接解压到自己需要的目录下即可。是免安装的,解压即用简…...
短视频矩阵系统源头开发
一、智能剪辑、矩阵分发、无人直播、爆款文案于一体独立应用开发 抖去推----主要针对本地生活的----移动端(小程序软件系统,目前是全国源头独立开发),开发功能大拆解分享,功能大拆解: 7大模型剪辑法(数学阶乘&#x…...
《windows核心编程》第1章 错误处理
一、错误信息的获取 1.1 C库错误信息 1、获取错误信息 #include <stdio.h> #include <stdlib.h> #include <string.h>int main() {fopen("D:\\ASC", "r");printf("%s\n", strerror(errno));getchar();return 0; } 2、设置错…...
解剖—单链表相关OJ练习题
目录 一、移除链表元素 二、找出链表的中间节点 三、合并两个有序链表 四、反转链表 五、求链表中倒数第k个结点 六、链表分割 七、链表的回文结构 八、判断链表是否相交 九、判断链表中是否有环(一) 十、 判断链表中是否有环(二) 注:第六题和第七题牛…...
php对接飞书机器人
有同事接到对接飞书机器人任务,开发中遇到响应错误: {"code": 19021,"msg": "sign match fail or timestamp is not within one hour from current time" } 意思应该就是签名错误或者时间戳不在有效范围内等,…...
中间件安全-CVE复现IISApacheTomcatNginx漏洞复现
目录 中间件安全&CVE复现&IIS&Apache&Tomcat&Nginx漏洞复现中间件-IIS安全问题中间件-Nginx安全问题漏洞复现Nginx 解析漏洞复现Nginx 文件名逻辑漏洞 中间件-Apache-RCE&目录遍历&文件解析等安全问题漏洞复现漏洞复现CVE_2021_42013 RCE代码执行&…...
@ResponseBodyAdvice @RequestBodyAdivce失效
背景 最近项目要有向外部提供服务的能力,但是考虑到数据安全问题,要对接口进行加解密;实现加解密的方案有很多,比如过滤器、拦截器、继承RequestResponseBodyMethodProcessor什么的,不过我最近正在了解ResponseBodyAd…...
【c#】Quartz开源任务调度框架学习及练习Demo
Quartz开源任务调度框架学习及练习Demo 1、定义、作用 2、原理 3、使用步骤 4、使用场景 5、Demo代码参考示例 6、注意事项 7、一些Trigger属性说明 1、定义、作用 Quartz是一个开源的任务调度框架,作用是支持开发人员可以定时处理业务,比如定时…...
spring cloud Eureka集群模式搭建(IDEA中运行)
spring cloud Eureka集群模式搭建(IDEA中运行) 新建springboot 工程工程整体目录配置文件IDEA中部署以jar包形式启动总结 新建springboot 工程 新建一个springboot 工程,命名为:eureka_server。 其中pom.xml文件为: …...
数据迁移一致性测试探索与实践
背景 量级庞大的日志通过mysql不足以支撑业务需求,以前通过任务调度定时跑批从mysql同步到hive存储,这种方式时效性为T1,也就是说今天的日志,明天才能同步到hive,总而言之时效性不高。为了提高时效性,改为…...
---图的遍历和最小生成树
广度优先遍历 --- 针对的是顶点遍历 深度优先遍历 如果给的图不是连通图?以某个点为起点就没有遍历完成。那么怎么保证遍历完剩下的点呢?? 在标记数组当中找没有遍历过的点,在进行遍历 最小生成树 生成树:一个连通…...
多站点多元时间序列预测基线方法开发与实践
1. 多站点多元空气污染时间序列预测的基线方法开发在真实世界的时间序列预测任务中,我们常常面临多重挑战:多输入变量、多步预测需求,以及跨多个物理站点的同步预测要求。EMC数据科学全球黑客马拉松提供的"空气质量预测"数据集正是…...
递归语言模型:原理、实现与应用场景解析
1. 递归语言模型基础解析递归语言模型(Recursive Language Models)是自然语言处理领域近年来备受关注的技术方向。与传统的序列模型不同,递归模型通过树状结构捕捉语言的层级特性,更接近人类语言的实际组织方式。我在实际项目中发…...
ARM硬件断点与BREAKWRITE命令详解
1. ARM硬件断点与BREAKWRITE命令概述在ARM架构的嵌入式系统开发中,硬件断点(Hardware Breakpoint)是调试复杂实时系统的关键工具。与软件断点不同,硬件断点不修改目标代码,而是利用处理器内置的调试硬件来监控特定内存访问行为。BREAKWRITE作…...
为什么工作台列表要避免 N+1 查询
为什么工作台列表要避免 N1 查询 最近在看 interview-guide 的 Agent 工作台读模型时,我又被一个老问题提醒了一次:很多人平时知道 N1 查询是坏味道,但一到“列表页顺手补一点关联信息”这种场景,还是很容易写回去。结果不是代码跑…...
大数据分析专业京东电子数码产品销量评价数据集,数据量大约35000条
大数据分析专业京东电子数码产品销量评价数据集,数据量大约35000条,可以用于做数据分析毕设字段包含:订单编号 用户ID 下单时间 商品一级分类 商品名称 单价 销量(件) 订单总金额 支付方式 收货地区 订单状态 用户评分 用户评价数据详情参考&…...
多项式特征变换在机器学习中的实践指南
1. 多项式特征变换在机器学习中的应用价值在机器学习实践中,我们常常会遇到这样的困境:输入特征之间存在着复杂的非线性关系,而简单的线性模型无法有效捕捉这些关系。这时候,多项式特征变换就成为了一个强有力的工具。通过将原始特…...
51PR媒体发布平台整合近10万媒体资源,助力企业高效发稿
上海众效科技有限公司旗下51PR媒体发布平台(网站备案名称:媒体发布平台)整合了主流媒体、门户网站、自媒体、短视频媒体等近10万媒体资源,为企业提供一站式新闻稿发布服务,帮助品牌高效构建传播矩阵、快速提升品牌声量…...
不止于移动:为你的Unity第一人称角色添加环境交互与状态管理(FSM入门)
不止于移动:为你的Unity第一人称角色添加环境交互与状态管理(FSM入门) 在完成基础的第一人称移动和视角控制后,许多开发者会发现角色仍然缺乏真实感和可玩性。本文将带你从"能动"升级到"能玩",通过…...
BMS测试效率翻倍:基于TSMaster和DBC文件,快速配置你的ADBMS/LTC系列AFE模拟器
BMS测试效率翻倍:基于TSMaster和DBC文件快速配置AFE模拟器实战指南 在新能源汽车和储能系统开发中,电池管理系统(BMS)的测试验证一直是耗时费力的关键环节。传统手工测试不仅效率低下,更难以覆盖复杂的故障场景。本文将分享一套经过实战验证的…...
