首页 > 其他分享 >#yyds干货盘点# LeetCode面试题:子集 II

#yyds干货盘点# LeetCode面试题:子集 II

时间:2023-04-28 23:02:44浏览次数:34  
标签:yyds 面试题 nums int List II 子集 ans new

1.简述:

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。

 

示例 1:

输入:nums = [1,2,2]

输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]

示例 2:

输入:nums = [0]

输出:[[],[0]]

2.代码实现:

class Solution {
    List<Integer> t = new ArrayList<Integer>();
    List<List<Integer>> ans = new ArrayList<List<Integer>>();

    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        for (int mask = 0; mask < (1 << n); ++mask) {
            t.clear();
            boolean flag = true;
            for (int i = 0; i < n; ++i) {
                if ((mask & (1 << i)) != 0) {
                    if (i > 0 && (mask >> (i - 1) & 1) == 0 && nums[i] == nums[i - 1]) {
                        flag = false;
                        break;
                    }
                    t.add(nums[i]);
                }
            }
            if (flag) {
                ans.add(new ArrayList<Integer>(t));
            }
        }
        return ans;
    }
}

标签:yyds,面试题,nums,int,List,II,子集,ans,new
From: https://blog.51cto.com/u_15488507/6235747

相关文章

  • 2w字 详解 String,yyds
    关注公众号“Java后端技术全栈”回复“000”获取程序员必备电子书前言大家好,我是老田,今天给大家分享java基础知识之String。String类的重要性就不必说了,可以说是我们后端开发用的最多的类,所以,很有必要好好来聊聊它。本文主要内容如下:String简介我们先来说说,java中八大数据类型,然......
  • 剑指 Offer II 083. 没有重复元素集合的全排列
     分析:今天看的明日一练,这道题有点忘了怎么做了先偷个懒,用了个全排列函数,后面再研究代码:1classSolution(object):2defpermute(self,nums):3"""4:typenums:List[int]5:rtype:List[List[int]]6"""7returnlis......
  • Dubbo常见面试题
    关注Java后端技术栈“回复“面试”获取最新资料其实关于Dubbo的面试题,我觉得最好的文档应该还是官网,因为官网有中文版,照顾了很多阅读英文文档吃力的小伙伴。但是官网内容挺多的,于是这里就结合官网和平时面试被问的相对较多的题目整理了一下。1,说说一次Dubbo服务请求流程?基本工作流......
  • Java高频面试题和答案
    一、Java基础篇Object有哪些常用方法?大致说一下每个方法的含义Java创建对象有几种方式?获取一个类对象的方式有哪些?ArrayList和LinkedList的区别有哪些?用过ArrayList吗?说一下它有什么特点?有数组了为什么还要搞个ArrayList呢?说说什么是fail-fast?Hashtable与HashMap的区......
  • 嵌入式开发入门-51单片机基础知识(8)- IIC
    一、IIC发送时序图从上图可以看出:起始条件:SCL线是高电平时,SDA线从高电平向低电平切换;停止条件:SCL线是高电平时,SDA线从低电平向高电平切换;首先SDA和SCL都处于空闲状态(SDA和SCL都为高电平时),然后,SDA跳变为低电平(可以理解为,SDA向SCL发出通知,我现在要准备发送数据......
  • 2023面试自动化测试面试题【含答案】,建议收藏
    1、你做了几年的测试、自动化测试,说一下selenium的原理是什么?我做了五年的测试,1年的自动化测试;selenium它是用http协议来连接webdriver,客户端可以使用Java或者Python各种编程语言来实现;2、什么项目适合做自动化测试?关键字:不变的、重复的、规范的第一点,需求变化不能......
  • 45. 跳跃游戏 II
    给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i]i+j<n返回到达nums[n-1]的最小跳跃次数。生成的测试用例可以到......
  • ASCII码是什么--九五小庞
    ASCII(发音:,AmericanStandardCodeforInformationInterchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本延伸美国标准信息交换码则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC646。ASCII由电报码发展而来。第一版标准......
  • 接口测试面试题整理
    1.什么是接口测试?接口测试:是测试系统组件间接口的一种测试方法接口测试的重点:检查数据的交换,数据传递的正确性,以及接口间的逻辑依赖关系接口测试的意义:在软件开发的同时实现并行测试,减少页面层测试的深度,缩短整个项目的测试周期2.接口自动化测试的流程?基本的接口功能自动......
  • #yyds干货盘点#Class 对象
    类对象支持两种操作:属性引用和实例化。属性引用 使用Python中所有属性引用所使用的标准语法: obj.name。有效的属性名称是类对象被创建时存在于类命名空间中的所有名称。因此,如果类定义是这样的:classMyClass:"""Asimpleexampleclass"""i=12345deff(s......