首页 > 其他分享 >力扣15 三数之和

力扣15 三数之和

时间:2022-11-30 21:47:20浏览次数:40  
标签:set 15 nums int 三数 list 三元组 力扣 new

题目:

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

示例:

输入: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] 。
注意,输出的顺序和三元组的顺序并不重要。

哈希解法:

class Solution {
    public static List<List<Integer>> threeSum(int[] nums) {
        HashSet<List<Integer>> set = new HashSet<>();
        for (int i=0;i<nums.length-2;i++){
            HashMap<Integer, Integer> map = new HashMap<>();
            for (int j=i+1;j<nums.length;j++){
                int need=-(nums[i]+nums[j]);
                if (map.containsKey(need)){
                    List<Integer> list = Arrays.asList(nums[i], nums[j], need);
                    Collections.sort(list);
                    set.add(list);////排序后存放在set中的集合能保证没有重复
                }else {
                    map.put(nums[j], nums[j]);
                }
            }
        }
        return new ArrayList<>(set);
    }
}

 

标签:set,15,nums,int,三数,list,三元组,力扣,new
From: https://www.cnblogs.com/cjhtxdy/p/16939834.html

相关文章

  • 1577 – Cannot proceed beca…
    可视化mysql数据库管理工具Navicat的1577错误解决由eming撰写​http://tuibian.com/?p=823​今天尝试使用了Windows下的可视化mysql数据库管理工具front,界......
  • 力扣 leetcode 162. 寻找峰值
    问题描述峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个峰值所在位置即......
  • 力扣 leetcode 153. 寻找旋转排序数组中的最小值
    问题描述已知一个长度为n的数组,预先按照升序排列,经由1到n次旋转后,得到输入数组。例如,原数组nums=[0,1,2,4,5,6,7]在变化后可能得到:若旋转4次,则可以得到[4......
  • 力扣 leetcode 33. 搜索旋转排序数组
    问题描述整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k......
  • 力扣287(java&python)-寻找重复数(中等)
    题目:给定一个包含 n+1个整数的数组 nums,其数字都在 [1,n] 范围内(包括1和n),可知至少存在一个重复的整数。假设nums只有一个重复的整数,返回 这个重复的数......
  • 力扣 leetcode 895. 最大频率栈
    问题描述设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。实现FreqStack类:FreqStack()构造一个空的堆栈。voidpush(intval)将一......
  • 「哈希表」最大频率栈(力扣第895题)
    本题为11月30日力扣每日一题题目来源:力扣第895题题目tag:哈希表题面题目描述设计一个类似堆栈的数据结构,将元素推入堆栈,并从堆栈中弹出出现频率最高的元素。实现......
  • python-解力扣提【两数相加】
    1.题目  2.无任何参考下自己的解题代码 解题思路:i和j在列表索引中循环,不相等且两数相加等于target则返回[i,j] 3.参考大神代码解题思路:1).enumerate多用于在f......
  • Mysql容器持续重启You can use the following information to find out 2022-11-30T02
    迁移MySQL容器从一台服务器到另外一台服务器后,容器持续重启,信息如下:2022-11-30T02:14:55.156625218Zmax_threads=5002022-11-30T02:14:55.156628081Zthread_count=020......
  • PLSQL Developer 15安装及配置
    下载PLSQLDeveloper访问官网并选择自己相应版本下载,注意下载的仅仅是30天试用版本,并安装https://www.allroundautomations.com/try-it-free/产品编号ProductCode:k......