力扣 三数之和 双指针 java

news/2024/12/29 5:38:20/

Problem: 15. 三数之和

在这里插入图片描述

  • 时间复杂度: O ( n 2 ) O(n^2) O(n2)

🍑 AC code

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res = new ArrayList<>();int len = nums.length;  if(len < 3) return res;Arrays.sort(nums);for(int i = 0; i < len; i++){if(nums[i] > 0)break;if(i > 0 && nums[i] == nums[i-1])//去重 第一个选的数continue;int l = i+1;int r = len-1;while(l < r){int sum = nums[i] + nums[l] + nums[r];if(sum == 0){res.add(Arrays.asList(nums[i],nums[l],nums[r]));//去重 l 和 r 的数// 注意:当nums[i] 固定的时候,一个nums[l]对应只有一个nums[r] 可以满足题目条件while(l < r && nums[l] == nums[l+1]) l++;while(l < r && nums[r] == nums[r-1]) r--;l++;r--;}else if(sum < 0)//减小一点l++;else if(sum > 0)//加小一点r--;}}       return res;}
}

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

相关文章

“探索Linux世界:从CentOS安装到常见命令使用“

目录 引言一、安装CentOS二、Linux的常见命令文件夹和目录操作命令文件编辑命令vi或vim编辑器命令模式编辑模式末行模式 总结 引言 在计算机领域&#xff0c;Linux作为一种强大而灵活的操作系统&#xff0c;在服务器、嵌入式设备和个人电脑等领域广泛应用。本文将引导您了解并…

大数据相关ERP、CRM、SRM、PLM、HRM、OA

目录 █ ERP&#xff08;企业资源计划&#xff09; █ CRM&#xff08;客户关系管理&#xff09; █ SCRM&#xff08;社会化客户关系管理&#xff09; █ SRM&#xff08;供应商关系管理&#xff09; █ OA&#xff08;办公自动化&#xff09; █ HRM&#xff08;人力资…

Affinity Photo 2.2.1 高端专业Mac PS修图软件

Affinity Photo Mac中文版是一款面向专业摄影师和其他视觉艺术家的专业图像处理软件&#xff0c;拥有众多专业高端功能&#xff0c;如Raw处理、PSD导入和导出、16位通道的编辑和ICC色彩管理以及兼容大量图片格式。是现在最快、最顺、最精准的专业修图软件。Affinity Photo Mac是…

MSQL系列(十一) Mysql实战-Inner Join算法底层原理及驱动表选择

Mysql实战-Inner Join算法驱动表选择 前面我们讲解了BTree的索引结构&#xff0c;及Mysql的存储引擎MyISAM和InnoDB,也详细讲解下 left Join的底层驱动表 选择, 并且初步了解 Inner join是Mysql 主动选择优化的驱动表&#xff0c;知道索引要建立在被驱动表上 那么对于Inner j…

vue使用vite工具编译,一个极不好友好的错误提示

yarn build 时提示如下错识 error during build: Error: [vite]: Rollup failed to resolve import "..." from "/Users/owen/html/bs-journey/src/components/UnScenic.vue". This is most likely unintended because it can break your application at …

嵌入式Linux设备中串口设备文件名不固定问题

在嵌入式Linux下&#xff0c;USB设备节点的名称ttyUSB是根据设备的插拔顺序而动态分配的&#xff0c;因此可能会导致设备节点名称不固定的问题。解决这个问题的方法有以下几种&#xff1a; 使用udev规则创建符号链接到固定路径&#xff1a; 如果USB设备是一个串口设备&#x…

入对IT行业无疑是阶层跨越的一次弯道超车!

如今赚钱最多的行业还是金融和IT行业&#xff0c;可是金融是出了名的挑家庭背景&#xff0c;只有IT行业成了一个个普通人家孩子创造奇迹脱离原来阶级的温床。 IT行业的整体薪酬水平也比较可观&#xff0c;在IT公司里见到许多出身普通最后晋升中产的例子给了很大的鼓舞。 IT行业…

基于人工智能的结直肠癌分类识别研究

基于人工智能的结直肠癌分类识别研究 摘要&#xff1a;随着我国人口老龄化和人工智能系统的发展&#xff0c;目前行业内相对比较传统的结直肠癌分类方法无法满足客户的需求。为了改进传统结直肠癌分类方法在结直肠癌分类上得短板问题&#xff0c;同时结直肠癌的分类识别方法目前…