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

python三数之和

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

示例 2:

输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例 3:

输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

  • 3 <= nums.length <= 3000
  • -105 <= nums[i] <= 105
    class Solution:def threeSum(self, nums: [int]) -> [[int]]:nums.sort()res, k = [], 0for k in range(len(nums) - 2):if nums[k] > 0: break # 1. because of j > i > k.if k > 0 and nums[k] == nums[k - 1]: continue # 2. skip the same `nums[k]`.i, j = k + 1, len(nums) - 1while i < j: # 3. double pointers = nums[k] + nums[i] + nums[j]if s < 0:i += 1while i < j and nums[i] == nums[i - 1]: i += 1elif s > 0:j -= 1while i < j and nums[j] == nums[j + 1]: j -= 1else:res.append([nums[k], nums[i], nums[j]])i += 1j -= 1while i < j and nums[i] == nums[i - 1]: i += 1while i < j and nums[j] == nums[j + 1]: j -= 1return res

相关文章:

python三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示例 1…...

uniapp 用css animation做的鲤鱼跃龙门小游戏

第一次做这种小游戏&#xff0c;刚开始任务下来我心里是没底的&#xff0c;因为我就一个‘拍黄片’的&#xff0c;我那会玩前端的动画啊&#xff0c;后面尝试写了半天&#xff0c;当即我就给我领导说&#xff0c;你把我工资加上去&#xff0c;我一个星期给你做出来&#xff0c;…...

JeecgBoot 3.6.1实现Modal对话框,以为审核数据为例

JeecgBoot 3.6.1实现Modal对话框 vue使用的是3.0版本 文章目录 JeecgBoot 3.6.1实现Modal对话框前言一、列表页面关键代码示例二、textAuditModal.vue代码示例三、test.api.ts总结 前言 在工作中&#xff0c;有一个需求&#xff0c;要求&#xff0c;在数据列表页&#xff0c;…...

Spring基于dynamic-datasource实现MySQL多数据源

目录 多数据源实现 引入依赖 yml配置文件 业务代码 案例演示 多数据源实现 引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>dynamicdatasourcespringbootstarter</artifactId><version>3.5.0</version> &…...

JS高频面试题(下)

11. 线程和进程的区别 进程是资源分配的最小单元&#xff0c;线程是代码执行的最小单元。 一个应用程序可能会开启多个进程&#xff0c;进程之间数据不共享&#xff0c;一个进程内部可以开启多个线程&#xff0c;线程之间的数据可以共享的&#xff0c;所以多线程的情况下&…...

单点登陆(SSO)基于CAS实现前后端分离的SSO系统开发「IDP发起」

关于其他前端常见登录实现单点登录方案&#xff0c;请见「前端常见登录实现方案 单点登录方案 」 前沿 单点登录&#xff08;SSO&#xff09;&#xff0c;英文全称为 Single Sign On。 SSO 是指在多个应用系统中&#xff0c;用户只需要登录一次&#xff0c;就可以访问所有相互…...

二叉树

目录 1翻转二叉树 2对称二叉树 3二叉树的深度 最大深度 最小深度 4二叉树的结点数量 完全二叉树的结点数量 5平衡二叉树 6 中序 后序求前序 二叉树结构体如下&#xff1a; struct freenode {int data;struct freenode *lchild, *rchild;//左孩子 右孩子 }T; 1翻转二…...

边缘计算:挑战与机遇的平衡艺术

前言 边缘计算作为云计算的补充&#xff0c;通过在数据源近处进行数据处理&#xff0c;已经成为实现物联网&#xff08;IoT&#xff09;、自动驾驶、智慧城市等应用的重要技术。然而&#xff0c;边缘计算的发展和普及也面临不少挑战&#xff0c;同时也带来了巨大的机遇。 方向…...

Windows11 Copilot助手开启教程(免费GPT-4)

Windows11上开启Copilot助手教程踩坑指南 Copilot介绍Copilot开启步骤1、更新系统2、更改语言和区域3、下载 ViVeTool 工具4、开启Copilot 使用 Copilot介绍 Windows Copilot 是 Windows 11 中的一个新功能&#xff0c;它可以让你与一个智能助理进行对话&#xff0c;获取信息&…...

【Golang入门教程】如何使用Goland创建并运行项目

自然语言处理的发展 文章目录 自然语言处理的发展**前言**创建新项目编辑运行/调试配置编写并运行代码总结强烈推荐专栏集锦写在最后 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站: 人工…...

鸿蒙开发实战-手写文心一言AI对话APP

运行环境 &#xff08;后面附有API9版本&#xff0c;可修改后在HarmonyOS4设备上运行&#xff09; DAYU200:4.0.10.16 SDK&#xff1a;4.0.10.15 IDE&#xff1a;4.0.600 在DAYU200:4.0.10.16上运行 一、创建应用 1.点击File->new File->Create Progect 2.选择模版…...

鸿蒙常用UI效果及一些处理方式总结

前言&#xff1a; DevEco Studio版本&#xff1a;4.0.0.600 详细使用介绍 1、Text的一些常用设置 Text(this.message).fontSize(50)//字体大小.fontColor(Color.White)//字体颜色.fontWeight(FontWeight.Bold)//字体加粗.backgroundColor(Color.Black)//背景颜色.fontStyle(…...

dataGrip连接数据库mysql和intersystems的iris

intersystems公司的产品iris是cache的升级版本&#xff0c;目前绝大多数数据库工具都没法连接这个数据库 datagrip下载地址 https://download-cdn.jetbrains.com.cn/datagrip/datagrip-2023.3.3.exe 选择对应的数据库产品类型 新建数据库资源连接 填上对应的数据库连接和账…...

【51单片机】点亮第一个LED灯

目录 点亮第一个LED灯单片机 GPIO 介绍GPIO 概念GPIO 结构 LED简介软件设计点亮D1指示灯LED流水灯 橙色 点亮第一个LED灯 单片机 GPIO 介绍 GPIO 概念 GPIO&#xff08;general purpose intput output&#xff09; 是通用输入输出端口的简称&#xff0c; 可以通过软件来控制…...

ubuntu20.04 格式化 硬盘 扩展硬盘

如何在 Ubuntu 22.04 LTS 上安装分区编辑器 GParted&#xff1f;_gparted安装-CSDN博客 sudo apt install gparted 步骤5&#xff1a;启动GParted 安装完成后&#xff0c;您可以在应用程序菜单中找到GParted。点击它以启动分区编辑器。 通过以上步骤&#xff0c;您可以在Ubun…...

openssl3.2/test/certs - 031 - purpose variants: clientAuth

文章目录 openssl3.2/test/certs - 031 - purpose variants: clientAuth概述笔记END openssl3.2/test/certs - 031 - purpose variants: clientAuth 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 /*! \file my_openssl_linux_log_doc_031.txt \note openssl3.2/tes…...

ubuntu下docker卸载和重新安装

卸载&#xff1a;步骤一&#xff1a;停止Docker服务 首先&#xff0c;我们需要停止正在运行的Docker服务。打开终端&#xff0c;执行以下命令&#xff1a; sudo systemctl stop docker 步骤二&#xff1a;删除Docker安装包 接下来&#xff0c;我们需要删除已经安装的Docker软件…...

搭建k8s集群实战(一)系统设置

1、架构及服务 Kubernetes作为容器集群系统&#xff0c;通过健康检查重启策略实现了Pod故障自我修复能力&#xff0c;通过调度算法实现将Pod分布式部署&#xff0c;并保持预期副本数&#xff0c;根据Node失效状态自动在其他Node拉起Pod&#xff0c;实现了应用层的高可用性。 …...

go-carbon v2.3.6 发布,轻量级、语义化、对开发者友好的 golang 时间处理库

carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库&#xff0c;支持链式调用。 目前已被 awesome-go 收录&#xff0c;如果您觉得不错&#xff0c;请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装使用 Golang 版本大于…...

力扣2859-计算k置位下标对应元素的和

计算K置位下标对应元素的和 题目链接 解题思路 对每个下标进行位运算&#xff0c;求得二进制位1的个数&#xff0c;与k进行比较如果相等&#xff0c;证明该元素符合题目要求的值对所有满足要求的值进行累加即可 class Solution { public:int sumIndicesWithKSetBits(vector<…...

告别第三方工具:用Cloudflare官方测速文件快速检测你的网络性能

告别第三方工具&#xff1a;用Cloudflare官方测速文件快速检测你的网络性能 你是否遇到过这样的场景&#xff1a;视频缓冲转圈、文件下载龟速、在线会议卡顿&#xff0c;却不知道是网络问题还是服务商的问题&#xff1f;传统的测速工具要么需要安装软件&#xff0c;要么广告满天…...

别再死记硬背了!用Halcon的vector_angle_to_rigid算子搞定视觉定位,附完整代码

视觉定位实战&#xff1a;用Halcon的vector_angle_to_rigid算子避开几何变换的三大误区 在工业视觉项目中&#xff0c;刚体变换是坐标转换的核心技术&#xff0c;但许多工程师在使用Halcon的vector_angle_to_rigid算子时&#xff0c;常陷入三个致命误区&#xff1a;误认为旋转…...

Acode:重新定义Android移动代码编辑体验

Acode&#xff1a;重新定义Android移动代码编辑体验 【免费下载链接】Acode Acode - powerful text/code editor for android 项目地址: https://gitcode.com/gh_mirrors/ac/Acode 在移动开发日益普及的今天&#xff0c;拥有一款高效的移动代码编辑器成为开发者的迫切需…...

OpenClaw+Qwen3.5-9B实战:5步完成本地AI助手部署与飞书接入

OpenClawQwen3.5-9B实战&#xff1a;5步完成本地AI助手部署与飞书接入 1. 为什么选择OpenClawQwen3.5-9B组合&#xff1f; 去年冬天&#xff0c;当我第5次因为忘记整理会议录音而被领导提醒时&#xff0c;终于决定给自己找个"数字助理"。在尝试了多个自动化工具后&…...

Java微服务Istio迁移踩坑实录(17个高频Failure Case全复盘)

第一章&#xff1a;Java微服务Istio 1.20迁移全景认知Istio 1.20 是一个面向生产就绪场景的重要版本&#xff0c;其核心变化聚焦于控制平面简化、xDS 协议增强与 Java 微服务生态的深度协同。该版本正式弃用 Istiod 中的 Pilot、Galley 和 Citadel 组件&#xff0c;统一由 isti…...

【20年JVM老兵亲测】Java 25密封类+模式匹配+记录类三重协同时,API设计效率提升47%!

第一章&#xff1a;Java 25密封类扩展特性的演进脉络与设计哲学Java 密封类&#xff08;Sealed Classes&#xff09;自 Java 15 作为预览特性引入&#xff0c;历经 Java 16、17 的持续迭代&#xff0c;最终在 Java 17 成为正式特性。而 Java 25 进一步拓展其能力边界&#xff0…...

手把手教你用Verilog写一个纯组合逻辑的FP32加法器(附完整代码与避坑指南)

手把手教你用Verilog实现纯组合逻辑FP32加法器&#xff08;附完整代码与避坑指南&#xff09; 在数字电路设计中&#xff0c;浮点运算单元一直是性能优化的关键路径。相比时序逻辑实现&#xff0c;纯组合逻辑的FP32加法器能在一个时钟周期内完成所有计算&#xff0c;显著提升吞…...

从滞后补偿器到PI控制:原理、设计与系统性能优化

1. 滞后补偿器与PI控制的本质联系 第一次接触滞后补偿器时&#xff0c;我盯着Bode图看了整整一个下午。那根缓缓下降的相位曲线就像过山车的第一道缓坡&#xff0c;让人隐约感觉到后面藏着什么有趣的东西。后来才明白&#xff0c;这个看似简单的相位滞后特性&#xff0c;正是理…...

OpenClaw安全指南:Qwen3-32B本地化部署的权限管控策略

OpenClaw安全指南&#xff1a;Qwen3-32B本地化部署的权限管控策略 1. 为什么需要特别关注OpenClaw的安全问题 第一次在本地部署OpenClaw时&#xff0c;我被它强大的自动化能力震撼了——这个AI助手能像真人一样操作我的电脑&#xff0c;从文件管理到网页浏览无所不能。但当我…...

设计师福音:Z-Image-Turbo_UI界面实现草图到成品的快速转化

设计师福音&#xff1a;Z-Image-Turbo_UI界面实现草图到成品的快速转化 你是不是也遇到过这样的场景&#xff1f;脑子里有一个绝妙的创意&#xff0c;手绘了一张草图&#xff0c;但要把这个草图变成一张精美的成品图&#xff0c;却需要花费数小时甚至数天的时间&#xff0c;在…...