描述

给出一个有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)

注意:

  1. 三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c)
  2. 解集中不能包含重复的三元组。
例如,给定的数组 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 三数之和】(待整理)相关推荐

  1. ❤️导图整理数组4: 三数之和 相比于 两数之和 的难点, 力扣15❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  2. ❤️导图整理数组5: 四数之和 相比 三数之和 的大量优化, 力扣18详细注解❤️

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  3. 思维导图整理大厂面试高频数组补充1: 最接近的三数之和 和 三数之和 的两个不同之处, 力扣16

    此专栏文章是对力扣上算法题目各种方法的总结和归纳, 整理出最重要的思路和知识重点并以思维导图形式呈现, 当然也会加上我对导图的详解. 目的是为了更方便快捷的记忆和回忆算法重点(不用每次都重复看题解), ...

  4. 《漫画算法2》源码整理-6 两数之和 三数之和

    两数之和 import java.util.*;public class TwoSum {public static List<List<Integer>> twoSum(in ...

  5. 基础数学(二)两数之和 三数之和

    目录 两数之和_牛客题霸_牛客网 三数之和_牛客题霸_牛客网 两数之和_牛客题霸_牛客网 给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返 ...

  6. 伍六七带你学算法 进阶篇-三数之和

    三数之和 难度-中等 题目:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组. 注意 ...

  7. LeetCode实战:最接近的三数之和

    题目英文 Given an array nums of n integers and an integer target, find three integers in nums such that ...

  8. LeetCode实战:三数之和

    题目英文 Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? ...

  9. 算法-----三数之和等于0

    三数之和 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件 且不重复的三元组. 注意:答案中不可以包含重 ...

最新文章

  1. 对抗攻击最新研究:仅修改「一个像素」即可骗过神经网络!
  2. 关于运维自动化工具saltstack的教程更新页面
  3. W10的服务器正在运行,win10开机提示服务器正在运行中的解决教程
  4. Asp.net1.0 升级 ASP.NET 2.0 的几个问题总结
  5. Python使用socket读取网页源代码实现简单爬虫程序
  6. CSS 文字超出长度的显示省略号的方法总结
  7. GNU make 汇总
  8. oracle 能被2整除_整除专题基础篇 “刀法四式”
  9. JAVA JSP网上订餐系统JSP餐厅点餐系统源码JSP点餐系统JSP网上订餐系统JSP在线订餐系统
  10. python问题解答网站_python问题解答网站
  11. cityscapes数据集上的类别统计分布
  12. 线性表2 - 数据结构和算法07
  13. 3D 沙盒游戏之人物的点击行走移动
  14. javascript学习-SVG
  15. zookeeper基础知识以及常用命令
  16. java 控制台类_Java Console类(控制台)
  17. GPT格式的磁盘扩容
  18. 修改elemntui tabs 下划线长短
  19. 应用在触摸面板中的电容式触摸芯片
  20. 黑客的成长(学会使用武器)

热门文章

  1. 将自己的女朋友的话和视频做为启动音乐和启动动画(XP)
  2. [Leedcode][JAVA][第739题][每日温度][暴力][单调栈]
  3. opencv rect画旋转矩形_在opencv c中绘制旋转的矩形
  4. hadoop元数据mysql中表字段_hive mysql元数据表说明
  5. redis 登录_Redis集群架构+Dubbo开发框架+SSO单点登录+Nginx+ZooKeeper
  6. yum如何安装特定版本的gcc_linux下如何升级python
  7. 模拟退火算法(代码可直接运行)
  8. can通讯bdc_宝马总线K-CAN3和K-CAN4常见案例
  9. qt中的qwidget如何实现自定义部件_2.3信号和槽(中)
  10. Scrum之 评审会议