leetcode78. Subsets

2024-04-10 23:18
文章标签 subsets leetcode78

本文主要是介绍leetcode78. Subsets,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

思路:状态压缩(话说这b装的膝盖一跪)
学过数电,就是枚举
[1,2,3]
————
0 0 0 []
0 0 1 [3]
0 1 0 [2]
0 1 1 [2,3]
1 0 0 [1]
1 0 1 [1,3]
1 1 0 [1,2]
1 1 1 [1,2,3]

class Solution(object):def subsets(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""ret=[]if not len(nums):return retfor i in range(2**(len(nums))):tmp=[]state=list('{:b}'.format(i)) #10进制转2进制state=['0']*(len(nums)-len(state))+statefor j in range(len(state)):if state[j]=='1':tmp.append(nums[j])ret.append(tmp)return ret

这篇关于leetcode78. Subsets的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/892423

相关文章

Leetcode78: Linked List Cycle II

Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note: Do not modify the linked list. Follow up: Can you solve it without using extra space? 大

78. Subsets 90. Subsets II

Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example, If nums = [1,2,3], a solution is: [[3],[1],[2],[1,2

代码随想录算法训练营第24天 | LeetCode93.复原IP地址、LeetCode78.子集、LeetCode90.子集II

目录 LeetCode93.复原IP地址 LeetCode78.子集 LeetCode90.子集II LeetCode93.复原IP地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、

Partition to K Equal Sum Subsets问题及解法

问题描述: Given an array of integers nums and a positive integer k, find whether it's possible to divide this array into k non-empty subsets whose sums are all equal. 示例: Input: nums = [4, 3, 2, 3

代码随想录算法训练营第二十八天|LeetCode93 复原IP地址、LeetCode78 子集

题1: 指路:LeetCode93 复原IP地址 思路与代码: 对于这种暴搜出不来的就该用回溯了。对于一个合理的IP地址:有四个字串,每个字串的值的和在[0, 255]中即可(注意不可有前导0)。所以我们用一个计数器pointSum为给定字符串中分割字串的分隔符'.'计数。每当有一个合理的子串时在该子串后面增加一个分隔符,当pointSum等于3时该字符串合理。 class Solutio

代码随想录算法训练Day28|LeetCode93-复原IP地址、LeetCode78-子集问题、LeetCode90-子集2

复原IP地址 题目描述 力扣93-复原IP地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。 例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。 给定一个

代码随想录算法训练营第二十八天| LeetCode93.复原IP地址 、LeetCode78.子集、LeetCode90.子集II

LeetCode 93. Restore IP Addresses LeetCode 93. 视频讲解:回溯算法如何分割字符串并判断是合法IP?| LeetCode:93.复原IP地址_哔哩哔哩_bilibili 这里返回的数字类型是List<String> 类型,那么可以直接操作String s,可以通过字符串拼接等来生成最终符合IP Addresses 的字符串。这与上一个题目获取回

【leetcode78】Single Number II

题目描述: 给定一个数组,里面除了一个数字,其他的都出现三次。求出这个数字 原文描述: Given an array of integers, every element appears three times except for one. Find that single one. Note: Your algorithm should have a linear runtime c

LeetCode78:子集

题目描述 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的 子集 (幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 代码 class Solution {public:vector<vector<int>> res;vector<int> path;void backTracking(vector<int>& nums, int sta

代码随想录算法训练营第二十四天|leetcode78、90、93题

一、leetcode第93题 class Solution {public:vector<string> restoreIpAddresses(string s) {int n = s.size();vector<string> res;function<void(string, int, int)> dfs = [&](string ss, int idx, int t) ->