编程题—leetcode78、90子集I、II

Leetcode Subset I & II Problem 1: Subset I Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset must be in non-descending order. The solution set must not contain duplicate subs 阅读详情
子集I
题目描述
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
  [3],
  [1],
  [2],
  [1,2,3],
  [1,3],
  [2,3],
  [1,2],
  []
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subsets
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路描述

采用回溯法

通过代码
import java.util.ArrayList;
import java.util.List;

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    public List<List<Integer>> subsets(int[] nums) {
        List<Integer> tmp = new ArrayList<>();
        sonNum(nums,0,tmp);
        return res;
    }

    public void sonNum(int[] nums,int start,List<Integer> tmp){
        res.add(new ArrayList<>(tmp));
        for(int i=start;i<nums.length;i++){
            tmp.add(nums[i]);
            sonNum(nums,i+1,tmp);
            tmp.remove(tmp.size()-1);
        }
    }
}
子集II
题目描述
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subsets-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
通过代码
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

class Solution {
    List<List<Integer>> res = new ArrayList<>();
    public List<List<Integer>> subsetsWithDup(int[] nums) {
        Arrays.sort(nums);
        List<Integer> tmp = new ArrayList<>();
        sonNum(nums,0,tmp);
        return res;
    }

    public void sonNum(int[] nums,int start,List<Integer> tmp){
        if (!res.contains(tmp)){
            res.add(new ArrayList<>(tmp));
        }
        for(int i=start;i<nums.length;i++){
            tmp.add(nums[i]);
            sonNum(nums,i+1,tmp);
            tmp.remove(tmp.size()-1);
        }
    }
}
决策大模型与生成式大模型有何不同?一文拆解技术框架与落地路径 大模型技术正从内容生成走向复杂场景的智能决策。与生成式大模型拟合概率分布不同,决策大模型以序列决策为核心,融合强化学习机制,在动态环境中感知反馈、持续修正行动路径。其技术框架涵盖语义理解、规划推理与闭环决策,并通过世界模型进行低成本仿真推演,显著提升供应链调度、物流排程等场景的应对效率。实际落地时需结合传统优化算法与人工兜底,构建“语义先导+数值寻优”的分层架构,才能平衡精度与稳定性。这篇内容拆解决策大模型的技术组成、落地路径与常见误区,为企业智能化转型提供可参考的实践框架。 阅读详情

相关推荐

企业和个人 AI 编程工具怎么选?2025 年 12 款主流工具(Claude/Cursor 等)核心能力 + 收费对比

2025 年最火的 12 款 AI 编程工具,像 Claude、Cursor 这些热门款,我把它们的核心能力、收费标准全扒得明明白白,看完这篇你不用再瞎琢磨,直接就能挑到对的!再说说 Cursor,美国 Cursor Labs 做的,还拿过红杉资本投资,2022 年推出后,2024 年收入直接涨了 6400%,势头很猛。总之,不管你是企业技术管理者、程序员,还是刚入门的 AI 小白,按自己的需求(语言、合规、预算)挑,保准能找到最适合的 AI 编程工具!最后给大家划重点,不同需求直接对号入座:?

hundred98的博客 2801

子集问题(LeetCode 78 & 90)

本篇文章主要介绍了子集问题以及详细的解法。

氷泠 1427

在安装之后使用labelme出现qtpy.PythonQtError:No Qt bindings could be found错误

我在base环境(python3.7)可成功安装和使用labelme,而在同py37版本和py36的虚拟环境中可安装labelme包,但在使用的时候出现报错,如下: 我尝试着去解决第一个错误提示,错误提示为:moduleNotFoundError:No module named ‘PySide’,结果掉入了一个无止无尽的坑,看到网上有朋友说这个只能在py27-py35才能安装,还有说需要VC+ 140等,他们说的这个解决方案只针对于这个缺包的描述,而我们仅仅只需要一个labelme,因此我直接对后面的错误

qq_33538651的博客 9815

leetcode刷题(六)

1.给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 std::vector<std::vector<int>> subsets(std::vector<int>&a...

paradox_1_0的博客 183

【BAAS】基于supabase的知识库详细设计

为满足快速开发需要和减少开发及维护成本,使用BAAS(Backend-as-a-Service)模式可以很好的降低我们的后端维护成本,并提高前端对接效率。一般来说,BAAS是一种云服务模式,BaaS供应商会为提供一些通用的能力,例如用户身份验证、数据库管理、远程更新和推送通知(针对移动应用程序),以及云存储和自托管。BaaS最主流的是Google的firebase,具有相当完善的功能和集成方案,但他是收费的,而且在我们实际项目中,可能需要私有化部署,这时就需要一些开源的替代方案,例如主流的。

Ric的博客 1781

PICO4 VR开发调试神器:用Live Preview Plugin实现电脑串流,告别反复打包烧录的繁琐流程

本文详细介绍了PICO4 VR开发中如何使用Live Preview Plugin实现电脑串流,显著提升开发效率。通过实时预览和调试功能,开发者可以避免反复打包烧录的繁琐流程,特别适用于Unity环境下的VR应用开发。文章涵盖环境配置、连接设置、实时调试技巧及性能优化方案,是PICO4开发者的必备指南。

weixin_34110970的博客 418

【编程题】求数组中的所有子集

题目叙述: 给出一个含有不重复元素的数组,列出它的所有子集。 输入描述: 共两行输入: 第一行一个整数n,示意数组的元素个数。 第二行,数组的各元素。 输出描述: 按集合的形式,每行输出其中一个子集,不要求顺序。 示例: 输入: 3 1 2 3 输出: [3] [1] [2] [1,2,3] [1,3] [2,3] [1,2] [] 本题目参考:https://blog.youkuaiyun.com/u012118523/article/details/24884803 方法一:通过二叉树向下回溯 原数组中的每

Vergesson 1451

【100%通过率】华为od机试C卷【出差 / 员工派遣】Java&Go 实现

某公司部门需要派遣员工去国外做项目。现在,代号为 x 的国家和代号为 y 的国家分别需要 cntx 名和 cnty 名员工部门每个员工有一个员工号 (1,2,3,......),工号连续,从 1开始。部长派遣员工的规则:

MISAYAONE的博客 2639

leetcode 78.不含重复元素数组的子集

题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 解题步骤: 方法一:采用广度优先遍历BFS,从空集开始比如: 代码: public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> alllis...

张毅的博客 1088

LLCC68芯片系统架构与LoRa驱动开发核心解析

LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与

weixin_29859471的博客 281

Claude Code 完整详解(Anthropic 官方 AI 编程 Agent)

它是运行在终端(Terminal)的 AI 编程代理,不是普通 IDE 插件;你用自然语言发指令,它自主规划步骤、读写项目文件、执行系统命令、排查 Bug、处理 Git 工作流,是能真正动手干活的 AI 程序员。真正的AI 开发代理人,不止写代码,还能执行开发全流程超长全局上下文,大型项目理解碾压传统补全工具终端原生 + IDE 双接入,开发流程无割裂代码质量、可读性、工程规范性普遍偏高权限安全机制完善,修改前预览、可随时中断回滚。

wange6906的博客 3155

python实现:数组所有子集的求解(国新日能笔试编程题)

目录 问题 解题思路 python具体实现 题外记 深浅拷贝代码实现示范 问题 已知数组如X=[1,2,3,4],输出其所有的子集,如[1],[2],[3],[4],[1,2],[2,3],[3,4],[1,2,3],[2,3,4],[1,2,3,4]...... 解题思路 分析:这其实也是一道找寻规律的问题。我们看子集的构成方式,就以X=[1,2,3,4]为...

积跬步,慕至千里的博客 4370

基于自适应小波阈值算法的图像去噪

自适应小波阈值算法是一种基于小波变换的方法,它相对于传统的小波阈值去噪方法具有更好的性能和鲁棒性。该算法首先对图像进行小波变换,然后根据小波系数的大小确定一个自适应的阈值,将小波系数与阈值进行比较,大于阈值的系数被保留,小于阈值的系数被置零。在上述代码中,首先选取了小波函数sym4进行小波分解,然后根据标准差计算出阈值,使用wthresh函数进行阈值处理,最后进行反变换得到处理后的图像。该GUI界面与前面的自适应小波阈值算法代码结合,实现了图像的去噪,并提供了可视化的效果。

与其临渊羡鱼,不如退而结网 558

力扣90——子集 II

原题 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 原题url:https://leetcode-cn.com/problems/subsets-ii/ 解题 递归 这道题,针对已经刷...

death05的博客 1355

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【算法与数据结构】78、90、LeetCode子集I, II

所有的LeetCode题解索引,可以看这篇文章——。

晚安的博客 298

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode第90题_子集II

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

qq_40263592的博客 1632

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【力扣】子集系列

力扣之子集系列 Leetcode 0078 子集 题目描述:Leetcode 0078 子集 分析 本题的考点:位运算。 如果nums中有n个元素,则其子集的个数为2n2^n2n个。 我们可以使用一个二进制数据mask中的后n位表示nums数组中的每个元素是否被选择,如果mask & (1 << i)是1的话,表示nums[i]在当前的子集中。 我们让mask从0循环到(1 << n) - 1就可以得到所有子集,每个不同的mask值对应一个子集。

weixin_42638946的博客 383

LeetCode 子集 & 子集II

子集 描述 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/subset...

BeforeEasy的博客 401

Leetcode_5_Backtracking_78,90子集,子集II

回溯理解图 78.子集 class Solution { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res=new ArrayList<>(); ArrayList<Integer>...

m0_37976836的博客 152

Java实现 LeetCode 90 子集 II(二)

90. 子集 II 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] PS: 先进行排序,保证重复元素挨在一起 记录每次遍历生成的新序列的长度,这里用left表示每次遍历的开始位置,right结束位置,len表示长度...

南 墙 1万+

90.子集II- 力扣(LeetCode)

1.首次遇到元素(如 1 和第一个 2):将元素添加到 所有现有子集(res)中,生成新子集。例如:1 添加到空集生成 [1];第一个 2 添加到 [] 和 [1] 生成 [2] 和 [1,2]。2.遇到重复元素(如第二个 2):仅将元素添加到 上一轮生成的新子集(cur)中。例如:第二个 2 添加到上一轮的 [2] 和 [1,2],生成 [2,2] 和 [1,2,2],而不会重复生成 [2]。

2401_87004385的博客 548

LeetCode 90. 子集II

特性子集 I (No Duplicates)子集 II (With Duplicates)输入无重复元素可能有重复元素预处理不需要排序必须先排序去重逻辑无需去重需要树层去重关键代码无核心思想纯回溯回溯 + 剪枝记忆口诀有重复,先排序;同层相遇要避让 (i > start前后相同就跳过 (

2403_86950176的博客 398

leetcode 90.子集II

leetcode 90.子集II 题目描述 给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 解题思路 回溯算法: 算法框架: 递归出口 条件筛选 递归 状态重置 class Solut...

EngineerHe的博客 1507

LeetCode - 子集II

题目链接:https://leetcode-cn.com/problems/subsets-ii/ 题目描述 给定一组可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明: 解集不能包含重复的子集。 示例: 输入: nums = [1,2,2] 输出: [ [2], [1], [1,2,2], [2,2], [1,2], [] ] 我的思路 是LeetCode...

良晨的技术站 253

LeetCode:T90. 子集 II 回溯法去重问题

题目链接https://leetcode-cn.com/problems/subsets-ii/ 子集 II 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集不能包含重复的子集。返回的解集中,子集可以按任意顺序排列。 示例 1: 输入:nums = [1,2,2] 输出:[[],[1],[1,2],[1,2,2],[2],[2,2]] 示例 2: 输入:nums = [0] 输出:[[],[0]] 对于第78题的子集I , 我们可以用回溯法直接来解:

qq_37040929的博客 3851

day25 力扣90.子集II 力扣46.全排列 力扣47.全排列 II

去重的操作也不同,本题去重是使用的哈希表去重,这里我使用的是unordered_set (如果使用数组的话,时间消耗会更少)在for循环内开始如果这个值小于path最后一个值或者之前用过了,就continue。这道题的终止条件是每一次循环时,如果pah如果大于1,那么我们就要进行存入result里,且不写return,因为这道题不是在叶子节点才存值,而是在每个path的大小大于1就要存进去。终止条件是当path的大小,它等于nums的大小,我们就加在result里,然后return。

2401_87983916的博客 843
上一篇: 2020网易笔试第四题
下一篇: 编程题—leetcode220:存在重复元素 III
code_AC
博客等级 码龄12年 255粉丝 109原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值