首页 > 其他分享 >LeetCode:78.子集

LeetCode:78.子集

时间:2025-01-19 19:42:40浏览次数:1  
标签:复杂度 length 子集 path LeetCode 78

LeetCode:78.子集

解题思路要求:1、所有子集;2、没有重复元素。网信2268731有出路、有死路。考虑使用回溯算法。

解题步骤用递归模拟出所有情况。8731保证接的数字都是后面的数字。收集所有到达递归终点的情况,并返回。

时间复杂度:O(2^N),因为每个元素都有两种可能(存在或不存在)空间复杂度:O(N)

/**
 * @param {number[]} nums
 * @return {number[][]}
 */
var subsets = function(nums) {
    let res = [];
    var backtrack=(path,length,start)=>{
        if(path.length===length){
            res.push(path)
            return
        }
        for(let i=start; i<nums.length; i++){
            backtrack([...path,nums[i]],length,i+1)
        }
    }
    for(let i=0; i<=nums.length; i++){
        backtrack([],i,0)
    }
    return res;
};
let nums = [1, 2, 3];
console.log(subsets(nums));

'

标签:复杂度,length,子集,path,LeetCode,78
From: https://www.cnblogs.com/KooTeam/p/18679843

相关文章

  • LeetCode:122.买卖股票的最佳时机II
    LeetCode:122.买卖股票的最佳时机IImathtcg4d..解题思路前提:上帝视角,知道未来的价格。局部最优:见好就收,见差就不动,不做任何长远打算。解题步骤新建一个变量,用来统计总利润。遍历价格数组,如果当前价格比昨天高,就在昨天买,今天卖,否则就不交易。遍历结束后,返回所有利润之和。/**......
  • leetcode11. 盛最多水的容器,双指针法
    leetcode11.盛最多水的容器给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例1:输入:[1......
  • leetcode——三数之和(java)
    给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输......
  • LeetCode25.K个一组翻转链表
    题目:给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。输入:head=[1,2,3,4,5......
  • LeetCode题练习与总结:下一个更大元素 Ⅲ -- 556
    一、题目描述给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n 。如果不存在这样的正整数,则返回 -1 。注意 ,返回的整数应当是一个 32位整数 ,如果存在满足题意的答案,但不是 32位整数 ,同样返回 -1 。示例1:......
  • LeetCode题练习与总结:反转字符串中的单词 Ⅲ -- 557
    一、题目描述给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"提示:1<=s.length<=5*10^......
  • python-leetcode-存在重复元素 II
    219.存在重复元素II-力扣(LeetCode)classSolution:defcontainsNearbyDuplicate(self,nums:List[int],k:int)->bool:seen=set()fori,numinenumerate(nums):ifnuminseen:returnTrue......
  • python-leetcode-最小覆盖子串
    76.最小覆盖子串-力扣(LeetCode)classSolution:defminWindow(self,s:str,t:str)->str:ifnotsornott:return""need={}forcint:need[c]=need.get(c,0)+1windo......
  • LeetCode:455.分饼干
    LeetCode:455.分饼干解题思路局部最优:既能满足孩子,还消耗最少。先将“较小的饼干”分给“胃囗最小”的孩子。解题步骤对饼干数组和胃口数组升序排序。遍历饼干数组,找到能满足第一个孩子的饼干。然后继续遍历饼干数组,找到满足第二、三、….、n个孩子的饼干。/***@param{numb......
  • 数据结构与算法之栈: LeetCode 71. 简化路径 (Ts版)
    简化路径https://leetcode.cn/problems/simplify-path/description/描述给你一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以‘/’开头),请你将其转化为更加简洁的规范路径在Unix风格的文件系统中规则如下一个点‘.’表示当前目录本身此外,两个......