每日一题 --- 三数之和[力扣][Go]
三数之和
题目:15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != 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
方法:
先排序,三个数,先固定一个不动指向的数为n,使用双指针,在不动的数下标到数组中间的数中找到两个指向数的结果为-n的数。注意指针滑动过程中一定要跳过所有与前一位数相同的数。
func threeSum(nums []int) [][]int {res := make([][]int, 0)Len := len(nums)qSort383(nums, 0, Len-1)for i := 0; i < Len; {l, r := i+1, Len-1for l < r {if nums[i]+nums[l]+nums[r] < 0 {l++for l < r && nums[l] == nums[l-1] {l++}} else if nums[i]+nums[l]+nums[r] > 0 {r--for l < r && nums[r+1] == nums[r] {r--}} else {res = append(res, []int{nums[i], nums[l], nums[r]})l++for l < r && nums[l] == nums[l-1] {l++}r--for l < r && nums[r+1] == nums[r] {r--}}}i++for i < Len && nums[i] == nums[i-1] {i++}}return res
}func qSort383(nums []int, low, high int) {if low >= high {return}pos := position383(nums, low, high)qSort383(nums, low, pos-1)qSort383(nums, pos+1, high)
}func position383(nums []int, low, high int) int {base := nums[low]l, r := low, highfor l < r {for l < r && nums[r] >= base {r--}nums[l] = nums[r]for l < r && nums[l] <= base {l++}nums[r] = nums[l]}nums[l] = basereturn l
}
相关文章:
每日一题 --- 三数之和[力扣][Go]
三数之和 题目:15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 **注意&#x…...
vue render 函数详解 (配参数详解)
vue render 函数详解 (配参数详解) 在 Vue 3 中,render 函数被用来代替 Vue 2 中的模板语法。 它接收一个 h 函数(或者是 createElement 函数的别名),并且返回一个虚拟 DOM。 render 函数的语法结构如下: render(h) …...
ubuntu23.10配置RUST开发环境
系统版本: gcc版本 下载rustup安装脚本: curl --proto =https --tlsv1.2 https://sh.rustup.rs -sSf | sh下载完成后会自动执行 选择默认安装选项 添加cargo安装目录到环境变量 vim ~/.bashrc<...
Vue性能优化--gZip
一、gZip简单介绍 1.1 什么是gzip gzip是GNUzip的缩写,最早用于UNIX系统的文件压缩。HTTP协议上的gzip编码是一种用来改进web应用程序性能的技术,web服务器和客户端(浏览器)必须共同支持gzip。目前主流的浏览器,Chro…...
蓝桥杯第七届大学B组详解
目录 1.煤球数量; 2.生日蜡烛; 3.凑算式 4.方格填数 5.四平方和 6.交换瓶子 7.最大比例 1.煤球数量 题目解析:可以根据题目的意思,找到规律。 1 *- 1个 2 *** 3个 3 ****** 6个 4 ********** 10个 不难发现 第…...
荣誉 | 人大金仓连续三年入选“金融信创优秀解决方案”
3月28日,由中国人民银行领导,中国金融电子化集团有限公司牵头组建的金融信创生态实验室发布“第三期金融信创优秀解决方案”,人大金仓新一代手机银行系统解决方案成功入选,这也是人大金仓金融行业解决方案连续第三年获得用户认可。…...
【关于jupyter notebook】一打开就闪退的问题
在Anaconda Prompt中输入jupyter notebook发现是有个错误。 里面多了一个__init__.py的文件导致报错。删除之后,就可以使用了...
若依 3.8.7版本springboot前后端分离 整合mabatis plus
1.去掉mybatis 这一步我没有操作,看别人的博客有说不去掉可能冲突,也可能不冲突,我试下来就没去掉如需要去除,到总的pom.xml中properties标签下的<mybatis-spring-boot.version>x.x.x</mybatis-spring-boot.version>…...
vue做移动端自适应插件实现rem
1.实现方式 postcss-pxtorem:将px转换为rem amfe-flexible:为html、body提那家font-size,窗口调整的时候重新设置font-size 2.安装与使用 npm install amfe-flexible --save npm install postcss-pxtorem --save-dev 1.再main.js入口文件…...
android 快速实现 图片获取并裁剪(更换头像)
1.获取图片框架:https://github.com/LuckSiege/PictureSelector 2.图片裁剪框架:https://github.com/jdamcd/android-crop 3.Glide图片加载框架:https://github.com/bumptech/glide 2.build.gradle依赖: dependencies {// Pic…...
垃圾回收机制--GC 垃圾收集器--JVM调优-面试题
1.触发垃圾回收的条件 新生代 Eden区域满了,触发young gc (ygc)老年代区域满了,触发full gc (fgc)通过ygc后进入老年代的平均大小大于老年代的可用内存,触发full gc(fgc).程序中主动调用的System.gc()强制执行gc,是full gc,但是不必然执行。…...
Java基础知识总结(29)
Java虚拟机 运行时数据区 程序计数器 方法区:Java 8以后没有方法区,改为了元空间(MetaSpace) 虚拟机栈 堆 本地方法栈 程序计数器 它可以看作是当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里,…...
vue js金额转中文
在Vue.js项目中,实现金额转中文的功能通常涉及编写一个JavaScript方法来处理数字转换逻辑,并在Vue组件中调用该方法。下面是一个基本的示例,展示如何在Vue组件中定义一个计算属性或方法来实现这一功能: /*** 思路: …...
《QT实用小工具·二》图片文字转base64编码
1、概述 源码放在文章末尾 base64编码转换类 图片转base64字符串。base64字符串转图片。字符转base64字符串。base64字符串转字符。后期增加数据压缩。Qt6对base64编码转换进行了重写效率提升至少200%。 下面是demo演示: 项目部分代码如下所示: #ifn…...
Django安装及第一个项目
1、安装python C:\Users\leell>py --version Python 3.10.6 可以看出我的环境python的版本3.10.6,比较新 2、 Python 虚拟环境创建 2.1 官网教程 目前,有两种常用工具可用于创建 Python 虚拟环境: venv 在 Python 3.3 及更高版本中默…...
专升本-物联网
物联网(IOT,Internet of things) 体系结构: 感知层(感知执行层) 网络层 应用层 基本特征: 全面感知 可靠传输 智能处理 作用: 信息采集、转换、收集 信息传递和处理 数据…...
二叉树的遍历C语言
二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握! 这是一道简单的二叉树问题! 我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序遍历,后序遍历! 输入格式…...
PostgreSQL到Doris的迁移技巧:实时数据同步新选择!
PostgreSQL可以说是目前比较抢手的关系型数据库了,除了兼具多样功能和强大性能之外,还具备非常优秀的可扩展性,更重要的是它还开源,能火不是没有理由的。 虽然PostgreSQL很强大,但是它也有短板,相对于专业…...
【三维】关于万向节锁的直白解释
1. 分析理解 万向节长什么样子,请参考这篇文章中的图片:https://zhuanlan.zhihu.com/p/42519819。 看了很多篇解释性的文章,没怎么看懂。因为我个人最关注的问题点在于: 现实物体旋转为什么没有所谓的万向节锁的bug,…...
程序员的修养 - 变量
变量几乎代码程序程序 中最基础的组成单元,程序员几乎无时无刻都在接触变量。但你对变量的理解真的足够吗? 首先,什么是变量?! 第一层理解:一个可以改变的量,区别于常量,用户可以修…...
Gemini3.1Pro透明化指南:模型卡与数据卡入口解析
在 2026 年,越来越多的团队开始把“模型怎么用”升级为“模型用得是否可控、可追溯”。尤其是涉及合规审计、数据治理与风险评估时,工程侧最需要的往往是:能快速找到模型信息与数据来源的透明化页面入口,确保链路清晰、记录完整、…...
汽车软件平台演进:从AUTOSAR到Hypervisor,如何重塑开发与商业模式
1. 汽车软件平台现状:从“硬骨头”到“乐高积木”的演进干了十几年汽车电子,我亲眼看着车里的代码从几万行膨胀到上亿行。十年前,我们还在为某个ECU(电子控制单元)里塞进一个简单的网络协议栈而通宵调试;现…...
Cursor免费版高效使用指南:配置优化与本地工具链整合
1. 项目概述与核心价值最近在开发者圈子里,关于AI编程工具的讨论热度一直居高不下。Cursor作为一款深度集成AI能力的代码编辑器,凭借其强大的代码生成、理解和重构功能,迅速成为了许多程序员提升效率的“新宠”。然而,其Pro版本需…...
131.详解YOLO损失函数+网格划分原理,附v1-v8演进脉络+YOLOv8实战代码
摘要 目标检测是计算机视觉的核心任务之一。YOLO(You Only Look Once)系列以其极致的检测速度与良好的精度平衡,成为工业界和学术界最广泛应用的检测框架。本文以理工科严谨逻辑,从YOLO的核心思想出发,覆盖从v1到v8的关键演进,并通过一个完整的可运行案例,带领读者从零…...
C#初步认识/入门基础
一、注释/运行/项目介绍1.注释1.// 双斜杠是单行注释,注释代码不会被执行;/* */是多行注释格式。两种均不会被执行;.///三斜杠一般写在方法前//1111/*111*11*////11112.运行2.运行调试 : 实心三角(运行控制台后会消失…...
Shell脚本工程化:great.sh框架解决运维脚本可维护性难题
1. 项目概述:一个被低估的Shell脚本构建框架如果你和我一样,常年混迹在运维、DevOps或者后端开发领域,那么对Shell脚本的感情一定是复杂的。一方面,它是我们最趁手的“瑞士军刀”,从服务器初始化、日志分析到自动化部署…...
ZYNQ UltraScale+ MPSoC实战:基于PL端AXI_UART16550 IP核与PS端中断机制,实现RS485多帧长数据可靠接收
1. 工业通信场景下的ZYNQ UltraScale MPSoC实战 在工业自动化领域,RS485总线因其抗干扰能力强、传输距离远等优势,成为设备间通信的主流选择。而ZYNQ UltraScale MPSoC凭借其独特的PSPL架构,能够完美应对工业通信中对实时性和可靠性的严苛要求…...
SpringBoot快速入门指南
Spring Boot 是一个基于 Spring 框架的“约定优于配置”的快速应用开发框架,旨在简化基于 Spring 的应用初始搭建和开发过程。它通过自动配置、起步依赖和嵌入式容器等特性,使开发者能够快速创建独立的、生产级别的 Spring 应用程序。 一、 核心特性与快…...
绕过Cursor AI消费限额前端Bug:浏览器控制台脚本实现API直接管理
1. 项目概述与背景 最近在深度使用Cursor这款AI代码编辑器时,遇到了一个挺让人头疼的问题。Cursor的付费模式是典型的用量计费,也就是所谓的“按需付费”,这对于我们这些高频使用者来说,确实需要设置一个消费上限,以防…...
大模型Agent面试通关秘籍!小白程序员必备,附收藏版学习资源
大模型Agent面试通关秘籍!小白程序员必备,附收藏版学习资源 本文分享了作者在阿里巴巴大模型Agent应用算法岗面试中的真实经验,涵盖了从一面到三面的高频技术问题及答题思路,包括大模型Agent核心模块解析、微调与提示工程关系、Ag…...
