(leetcode学习)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
第一次写的时候没想到先排序,写的确实是构式。
vector<vector<int>> threeSum(vector<int>& nums) {sort(nums.begin(), nums.end());vector<vector<int>> res;unordered_map<int, vector<vector<int>>> sum_2;unordered_map<string, int> res_m;for (int i = 0; i < nums.size(); i++) {for (int j = i + 1; j < nums.size(); j++) {if (sum_2.find(nums[j]) != sum_2.end()){vector<vector<int>> cur_vv = sum_2.find(nums[j])->second;for (int k = 0; k < cur_vv.size(); k++) {vector<int> cur_v = cur_vv[k], cur_res;if (j == cur_v[2] || j == cur_v[3]) continue;cur_res.push_back(nums[j]);cur_res.push_back(cur_v[0]);cur_res.push_back(cur_v[1]);sort(cur_res.begin(), cur_res.end());string cur_str = to_string(cur_res[0]) + to_string(cur_res[1]) + to_string(cur_res[2]);if (res_m.find(cur_str) == res_m.end()) {res.push_back(cur_res);res_m.insert(make_pair(cur_str, 1));}}}else {vector<int> cur_v = { nums[i], nums[j], i, j };int num = -nums[i] - nums[j];if (sum_2.find(num) == sum_2.end() ){vector<vector<int>> cur_vv;cur_vv.push_back(cur_v);sum_2.insert(make_pair(num, cur_vv));}else {sum_2.find(num)->second.push_back(cur_v);}}}}return res;
}
第二次用排序之后,用二重循环加哈希表,感觉是o(n)的复杂度,但是只打败很少的人,水平所限先就这样吧。

相关文章:
(leetcode学习)15. 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&a…...
算法训练 | 图论Part8 | 117. 软件构建、47. 参加科学大会
目录 117. 软件构建 拓扑排序法 47. 参加科学大会 dijkstra法 117. 软件构建 题目链接:117. 软件构建 文章讲解:代码随想录 拓扑排序法 代码一:拓扑排序 #include <iostream> #include <vector> #include <queue> …...
编程从零基础到进阶(更新中)
题目描述 依旧是输入三个整数,要求按照占8个字符的宽度,并且靠左对齐输出 输入格式 一行三个整数,空格分开 输出格式 输出它们按格式输出的效果,占一行 样例输入 123456789 -1 10 样例输出 123456789-1 10 #include "stdio.…...
MySQL运维实战之ProxySQL(9.6)SQL黑名单
作者:俊达 利用mysql_query_rules表中的error_msg字段,可以实现SQL黑名单的功能。如果规则设置了error_msg,当SQL语句匹配这条规则时,proxysql会直接将error_msg的内容返回给客户端。 当遇到一些大查询严重影响数据库性能时&…...
深入了解MySQL中的innodb_lock_wait_timeout
引言 在数据库管理中,确保数据的一致性和完整性是至关重要的。MySQL的InnoDB存储引擎通过行级锁定机制来实现这一点。然而,当多个事务同时操作数据库时,可能会出现锁等待的情况。了解并合理配置innodb_lock_wait_timeout参数,对于…...
102.qt qml-最全Table交互之多列固定、行列拖拽、自定义委托、标题交互使用教程
自定义实现的Table控件,支持跨qt版本,兼容qt5,qt6! 截图如下所示: 黑色风格如下所示: 视频演示入口:Qt QML QianWindowV2.5(新增曲线综合示例、QML最全Table交互示例、支持qt5/qt6)_哔哩哔哩_bilibili 1.示例页面入口…...
文章管理小程序的设计
管理员账户功能包括:系统首页,个人中心,作者管理,文章管理,文章分类管理,论坛,系统管理 微信端账号功能包括:系统首页,文章,论坛,我的 开发系统…...
Ubuntu22.04安装NIVIDIA显卡驱动总结
1.首先在安装驱动时需要判断系统有无GPU以及GPU的型号 可以参考这篇文章: https://blog.51cto.com/u_13171517/8814753#:~:textubuntu%20%E7%B3%BB%E7%BB%9F%20%E6%80%8E%E4%B9%88%E5%88%A4%E6%96%AD%E7%B3%BB%E7%BB%9F%E6%9C%89%E6%B2%A1%E6%9C%89GPU%201%20%E6%…...
Redis的配置优化、数据类型、消息队列
文章目录 一、Redis的配置优化redis主要配置项CONFIG 动态修改配置慢查询持久化RDB模式AOF模式 Redis多实例Redis命令相关 二、Redis数据类型字符串string列表list集合 set有序集合sorted set哈希hash 三、消息队列生产者消费者模式发布者订阅者模式 一、Redis的配置优化 redi…...
数据结构之初始二叉树(2)
找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 二叉树的前置知识(概念、性质、、遍历) 通过上篇文章的学习,我们…...
如何预防最新的baxia变种勒索病毒感染您的计算机?
引言 在当今数字化时代,网络安全威胁层出不穷,其中勒索病毒已成为企业和个人面临的重大挑战之一。近期,.baxia勒索病毒以其高隐蔽性和破坏性引起了广泛关注。本文将详细介绍.baxia勒索病毒的特点、传播方式,并给出相应的应对策略…...
git列出提交记录的文件路径
一、如何列出某次提交记录中修改过/新增的文件? 方法1:使用 git diff-tree 命令来查看某个提交记录中修改过/新增的文件。具体来说,你可以使用以下命令: git diff-tree --no-commit-id --name-only -r <commit-hash>命令解…...
微信小程序密码 显示隐藏 真机兼容问题
之前使用type来控制,发现不行,修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…...
C# 中,使用 LINQ 示例 备忘
语言集成查询 (LINQ) 是一系列直接将查询功能集成到 C# 语言的技术统称。 数据查询历来都表示为简单的字符串,没有编译时类型检查或 IntelliSense 支持。 此外, … 对于编写查询的开发者来说,LINQ 最明显的“语言集成”部分就是查询表达式。 …...
GaussDB DWS 详解
文章目录 GaussDB DWS 详解一、简介二、DWS的分布式架构架构概述关键组件 三、分布式查询数据查询流程SQL执行的示例 批注:本文引鉴了Forlogen博主的一些内容,并加以补充,以供学习了解。 GaussDB DWS 详解 一、简介 DWS(Data Warehouse Ser…...
【256 Days】我的创作纪念日
目录 🌼01 机缘 🌼02 收获 🌼03 日常 🌼04 成就 🌼05 憧憬 最近收到官方来信, 突然发现,不知不觉间,距离发布的第一篇博客已过256天,这期间我经历了春秋招、毕业答辩…...
3D云渲染工具对决:Maya与Blender的性能和功能深度比较
3D建模和动画制作已成为数字领域不可或缺的一环,无论是在影视特效的震撼场面,还是在游戏角色的生动表现,3D技术都扮演着至关重要的角色。而在这一领域,Maya和Blender这两款软件,以其强大的功能和广泛的应用,…...
spring.factories详解
spring.factories 是 Spring Boot 中一个重要的配置文件,它用于实现自动配置类和框架的扩展机制。这个文件通常位于项目的 resources/META-INF 目录下,并且遵循 Java 的 .properties 文件格式。以下是对 spring.factories 的详细解释: 自动配…...
从Docker Hub 拉取镜像一直失败超时?这些解决方案帮你解决烦恼
设置国内源: 提示:常规方案(作用不大) 阿里云提供了镜像源:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 登录后你会获得一个专属的地址 使用命令设置国内镜像源:通过vim /etc/docker/d…...
【pbootcms】新环境搭建环境安装时发生错误
【pbootcms】新环境搭建环境安装时发生错误 提示一下内容: 登录请求发生错误,您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试 2、检查系统会话文件存储目录是否具有写入权限; 3、检查服务器环境pathinfo及伪静态规则配置; 先按照…...
深入解析Xil_DCacheFlushRange在Zynq SoC中的缓存一致性应用
1. 为什么Zynq开发者需要关注Xil_DCacheFlushRange 第一次在Zynq平台上做DMA数据传输时,我遇到了一个诡异现象:PL端明明收到了数据,但处理结果总是错乱。调试三天后才发现,问题出在PS端的缓存数据没有及时同步到主存。这个经历让…...
微信数据解密技术全解析:从原理到合规应用
微信数据解密技术全解析:从原理到合规应用 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 合规使用声明 本文所介绍的技术与工具仅适用于个人合法拥有的数据管理场景。使用者必须确保:1) 仅对本人所…...
WiFi密码安全测试:如何用hashcat的掩码模式快速爆破简单密码?
WiFi密码安全测试:hashcat掩码模式的高效爆破策略 在网络安全评估中,WiFi密码强度测试是基础但关键的一环。传统字典攻击虽然简单直接,但面对特定密码模式时效率低下。本文将深入探讨如何利用hashcat的掩码模式(Mask Attack&#…...
老游戏重生记:如何让经典作品在Win11焕发新生?
老游戏重生记:如何让经典作品在Win11焕发新生? 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com/gh_mirrors/dd/DD…...
Phi-4-mini-reasoning真实作品:微分方程求解+物理意义解释双模态输出
Phi-4-mini-reasoning真实作品:微分方程求解物理意义解释双模态输出 1. 模型简介 Phi-4-mini-reasoning是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理能力。作为Phi-4模型家族的一员,它经过专门微调以提升数学…...
3分钟掌握qmcdump:一键解锁QQ音乐加密文件,让音乐自由播放
3分钟掌握qmcdump:一键解锁QQ音乐加密文件,让音乐自由播放 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmc…...
DeepSeek-R1-Distill-Qwen-1.5B效果展示:同一问题下思考链vs直答效果对比
DeepSeek-R1-Distill-Qwen-1.5B效果展示:同一问题下思考链vs直答效果对比 1. 项目概述 DeepSeek-R1-Distill-Qwen-1.5B是一个超轻量级的智能对话模型,基于魔塔平台下载量最高的蒸馏模型构建。这个模型巧妙融合了DeepSeek强大的逻辑推理能力和Qwen成熟的…...
webrtc推流能成为直播的主要方案吗?
妮妮:今天我们聊聊Web RTC做直播推流。小新:好的,WHIP推流协议实现已经合入FFMPEG,OBS。推进了web rtc推流的方案。妮妮:那什么是WHIP协议呢?小新:WHIP的全称是:Web RTC HTTP Ingest…...
告别重复输入密码!手把手教你为GitLab配置SSH密钥(Windows/Mac通用)
告别重复输入密码!手把手教你为GitLab配置SSH密钥(Windows/Mac通用) 每次提交代码都要输入密码?GitLab频繁的身份验证是否让你感到烦躁?作为开发者,我们每天要与版本控制系统打交道数十次,重复的…...
Kandinsky-5.0-I2V-Lite-5s多风格测试:卡通、写实、水墨画生成效果对比
Kandinsky-5.0-I2V-Lite-5s多风格测试:卡通、写实、水墨画生成效果对比 1. 开场:当静态艺术遇见动态魔法 想象一下,你珍藏的卡通插画突然活了过来,水墨画中的山水开始流动,写实照片里的场景有了生命。这正是Kandinsk…...
