【NC54 三数之和】(待整理)
描述
给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。
数据范围:0 \le n \le 10000≤n≤1000,数组中各个元素值满足 |val | \le 100∣val∣≤100
空间复杂度:O(n^2)O(n2),时间复杂度 O(n^2)O(n2)
注意:
- 三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)
- 解集中不能包含重复的三元组。
例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-10, -10, 20),(-10, 0, 10)
示例1
输入:
[0]
复制返回值:
[]
复制
示例2
输入:
[-2,0,1,1,2]
复制返回值:
[[-2,0,2],[-2,1,1]]
复制
示例3
输入:
[-10,0,10,20,-10,-40]
复制返回值:
[[-10,-10,20],[-10,0,10]]
解题报告:
看了题解发现可以用双指针,抽空补上。
我这道题是最后再去重的,注意这题不可以先对所有数字排序然后上来就去重。比如[-4,2,2].
AC代码:
class Solution {
public:vector<vector<int> > threeSum(vector<int> &num) {int n = num.size();map<int, vector<int>> mp; for(int i = 0; i<n; i++) {mp[num[i]].push_back(i);}vector<vector<int> > ans;for(int i = 0; i<n; i++) {for(int j = i+1; j<n; j++) {int t = -(num[i] +num[j]);if(mp[t].size() > 0) {for(auto x : mp[t]) {if(x != i &&x != j) {ans.push_back(vector<int>{num[i],num[j],num[x]});}}}}}for(int i = 0; i<ans.size(); i++) {sort(ans[i].begin(), ans[i].end());}sort(ans.begin(), ans.end());auto it = unique(ans.begin(), ans.end());ans.erase(it, ans.end());return ans;}
};
【NC54 三数之和】(待整理)相关推荐
- ❤️导图整理数组4: 三数之和 相比于 两数之和 的难点, 力扣15❤️
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...
- ❤️导图整理数组5: 四数之和 相比 三数之和 的大量优化, 力扣18详细注解❤️
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...
- 思维导图整理大厂面试高频数组补充1: 最接近的三数之和 和 三数之和 的两个不同之处, 力扣16
此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...
- 《漫画算法2》源码整理-6 两数之和 三数之和
两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...
- 基础数学(二)两数之和 三数之和
目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返 ...
- 伍六七带你学算法 进阶篇-三数之和
三数之和 难度-中等 题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意 ...
- LeetCode实战:最接近的三数之和
题目英文 Given an array nums of n integers and an integer target, find three integers in nums such that ...
- LeetCode实战:三数之和
题目英文 Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...
- 算法-----三数之和等于0
三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件 且不重复的三元组. 注意:答案中不可以包含重 ...
最新文章
- 对抗攻击最新研究:仅修改「一个像素」即可骗过神经网络!
- 关于运维自动化工具saltstack的教程更新页面
- W10的服务器正在运行,win10开机提示服务器正在运行中的解决教程
- Asp.net1.0 升级 ASP.NET 2.0 的几个问题总结
- Python使用socket读取网页源代码实现简单爬虫程序
- CSS 文字超出长度的显示省略号的方法总结
- GNU make 汇总
- oracle 能被2整除_整除专题基础篇 “刀法四式”
- JAVA JSP网上订餐系统JSP餐厅点餐系统源码JSP点餐系统JSP网上订餐系统JSP在线订餐系统
- python问题解答网站_python问题解答网站
- cityscapes数据集上的类别统计分布
- 线性表2 - 数据结构和算法07
- 3D 沙盒游戏之人物的点击行走移动
- javascript学习-SVG
- zookeeper基础知识以及常用命令
- java 控制台类_Java Console类(控制台)
- GPT格式的磁盘扩容
- 修改elemntui tabs 下划线长短
- 应用在触摸面板中的电容式触摸芯片
- 黑客的成长(学会使用武器)
热门文章
- 将自己的女朋友的话和视频做为启动音乐和启动动画(XP)
- [Leedcode][JAVA][第739题][每日温度][暴力][单调栈]
- opencv rect画旋转矩形_在opencv c中绘制旋转的矩形
- hadoop元数据mysql中表字段_hive mysql元数据表说明
- redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper
- yum如何安装特定版本的gcc_linux下如何升级python
- 模拟退火算法(代码可直接运行)
- can通讯bdc_宝马总线K-CAN3和K-CAN4常见案例
- qt中的qwidget如何实现自定义部件_2.3信号和槽(中)
- Scrum之 评审会议