Lc_78子集
2021/5/10 10:58:43
本文主要是介绍Lc_78子集,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
package com.example.leetcode; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.List; /** * @description: 78. 子集 * 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 * <p> * 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 * <p> * <p> * <p> * 示例 1: * <p> * 输入:nums = [1,2,3] * 输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]] * 示例 2: * <p> * 输入:nums = [0] * 输出:[[],[0]] * <p> * <p> * 提示: * <p> * 1 <= nums.length <= 10 * -10 <= nums[i] <= 10 * nums 中的所有元素 互不相同 * @author: licm * @create: 2021-05-10 09:46 **/ public class Lc_78子集 { public static List<List<Integer>> subsets(int[] nums) { List<List<Integer>> res = new ArrayList<>(); Deque<Integer> path = new ArrayDeque<>(); backtracking(nums, 0, path, res); return res; } static void backtracking(int[] nums, int startIndex, Deque<Integer> path, List<List<Integer>> res) { res.add(new ArrayList<>(path)); if (startIndex >= nums.length) { return; } for (int i = startIndex; i < nums.length; i++) { path.addLast(nums[i]); /** * 为了不重复 索引 i+1 */ backtracking(nums, i + 1, path, res); path.removeLast(); } } public static void main(String[] args) { int[] nums = {1,2,3}; List<List<Integer>> res = subsets(nums); res.forEach(m -> { for (Integer r : m) { System.out.print(r + ""); } System.out.println(); }); System.out.println(); } }
这篇关于Lc_78子集的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain