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

15.三数之和

有点把问题拆分的意思,先固定第一个数,剩下两个双指针找符合条件的数,注意去重条件,为去重最简单高效的办法就是先对数组进行排序,再在判断过程中加上判断i和i-1是否相等。

双指针找条件时,由于数组有序,若结果大于0则让右指针左移,直到左移到小于零再让左指针右移(左右谁先动无所谓)

是一个比较需要思考细节的题

class Solution {public List<List<Integer>> threeSum(int[] nums) {List<List<Integer>> res= new ArrayList<List<Integer>>();Arrays.sort(nums);for(int i=0;i<nums.length;i++){if(i>0&&nums[i]==nums[i-1]) continue;int left=i+1; int right=nums.length-1;while(left<right){if(nums[i]+nums[left]+nums[right]==0){List<Integer> ans= new ArrayList<>();ans.add(nums[i]);ans.add(nums[left]);ans.add(nums[right]);res.add(ans);left++;while(left<right&&nums[left]==nums[left-1]) left++;}else if(nums[i]+nums[left]+nums[right]<0){left++;}else{right--;} }}return res;}
}

http://www.lqws.cn/news/537643.html

相关文章:

  • 教程 | 一键批量下载 Dify「Markdown 转 Docx」生成的 Word 文件(附源码)
  • GraphQL注入 -- GPN CTF 2025 Real Christmas
  • Spring Boot高并发 锁的使用方法
  • 与 AI 聊天更顺畅:cat_code.py
  • [深度学习][python]yolov13+bytetrack+pyqt5实现目标追踪
  • 数据结构进阶 - 第九章 排序
  • Docker安装Mysql、配置文件挂载、修改Mysql编码
  • C2远控篇CC++SC转换格式UUID标识MAC物理IPV4地址减少熵值
  • 什么是谓词下推?
  • leetcode:50. Pow(x, n)(python3解法,数学相关算法题)
  • 苍穹外卖day3--公共字段填充+新增菜品
  • 桌面小屏幕实战课程:DesktopScreen 11 SPI 水墨屏
  • 超声波清洗机相对于传统清洗方法有哪些优势?
  • 博客系统测试报告
  • 互联网大厂Java求职面试:RAG系统架构设计与实战
  • 通达信 股道主力资金 幅图分析系统
  • 攻防世界-MISC-4-2
  • vue3 定时刷新
  • Python-8-模块和第三方库
  • 鸿蒙分布式数据管理:构建无缝跨设备体验的核心技术
  • php项目部署----------酒店项目
  • 《HarmonyOSNext应用崩溃自救指南:零数据丢失的故障恢复黑科技》
  • ubuntu20.04如何给appImage创建快捷方式
  • AMS流媒体服务器-新版(h265-flv)
  • 2.1、STM32 CAN外设简介
  • 使用 ReAct 框架在 Ollama 中实现本地代理(Agent)
  • CNN不是一个模型?
  • uniapp uni.chooseMedia 判断是拍摄还是相册 弹出权限说明
  • Rust与Go:GAN实战对决
  • 【stm32】HAL库开发——CubeMX配置外部中断和配置PWM