当前位置:网站首页>Leetcode hot topic Hot 100 day 33: "subset"
Leetcode hot topic Hot 100 day 33: "subset"
2022-07-05 04:24:00 【Ultimate brocade】
Continue to brush LeetCode Hot topic HOT 100 The subject of , And update my blog solutions. stay csdn In my blog, I will try to explain clearly in words , relevant Java Code, you can go to my Personal blog jinhuaiyu.com View in .
subject : A subset of
Give you an array of integers nums , Elements in an array Different from each other . Returns all possible subsets of the array ( Power set ).
Solution set You can't Contains a subset of repetitions . You can press In any order Returns the solution set .
Example 1:
Input :nums = [1,2,3]
Output :[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
Example 2:
Input :nums = [0]
Output :[[],[0]]
Tips :
1 <= nums.length <= 10
-10 <= nums[i] <= 10
nums All elements in Different from each other
solution 1: Dynamic programming
We need to find the former i The set of all subsets of digits and the first i+1 The relationship between sets of all subsets of digits . Suppose the set of the former is f(i), Add numbers to each subset nums[i+1] Form a set add, be f(i+1) Namely f(i)+add. You can try this set rule by yourself .
In limine , We need to put an empty set in the set ( An empty set is a subset of all sets ), And then from 0 To traverse the nums Array , Start calculating layer by layer f(i). In each layer, the set obtained from the previous layer is copied and added with numbers nums[i], Then put back the collection .
solution 2: Binary corresponding subset
For all subsets , All individually correspond to one nums Array every take and don't take , Assume that 1 Do not take as 0, about nums by {5,2,9}, Subset empty set corresponds to binary number 000, A subset of {5,2} Corresponding to binary number 110. Altogether 2^n A subset of , It corresponds to 2^n Binary numbers (n position ,n by nums length ). And these binary numbers are continuous , Its decimal size ranges from 0 To 2^n - 1.
We can enumerate decimal values from 0 To 2^n - 1 Binary number of (n position , Front complement 0) To get all the corresponding subsets . For one of the binary numbers , If the first i Position as 1, be nums[i] Join the current subset .
To judge a decimal number m After converting to binary, the i Whether bit is bit 1, We can use it and 2^i Find the position and &. because 2^i Binary number of , Except for i Is it 1 The others are 0, If m Of the i It's also 0, Then the two are bitwise and must be 0, Otherwise 1.
solution 3: to flash back ( Depth-first search )
Depth first search , Each path corresponds to a different subset , Depth is nums.length. There are taking and not taking on each floor nums[i] Two options , Reach the leaf node ( The first n layer ) Record the subset corresponding to the current path . A lot of backtracking problems have been done before , This problem is simpler , There are only two options on each floor , You can put it first. nums[i] Join in , Then drill down , Go back and take out this number , And search down without taking the number .
Finally, The code with detailed comments is placed in my Personal blog http://jinhuaiyu.com/leetcode-subsets/
边栏推荐
- Use threejs to create geometry and add materials, lights, shadows, animations, and axes
- Threejs loads the city obj model, loads the character gltf model, and tweetjs realizes the movement of characters according to the planned route
- Ffmepg usage guide
- WeNet:面向工业落地的E2E语音识别工具
- Convert Boolean to integer value PHP - Convert Boolean to integer value PHP
- Fonction (sujette aux erreurs)
- 【thingsboard】替换首页logo的方法
- “金九银十”是找工作的最佳时期吗?那倒未必
- [finebi] the process of making custom maps using finebi
- Common features of ES6
猜你喜欢
![[phantom engine UE] package error appears! Solutions to findpin errors](/img/d5/6747e20da6a8a4ca461094bd27bbf0.png)
[phantom engine UE] package error appears! Solutions to findpin errors

The scale of computing power in China ranks second in the world: computing is leaping forward in Intelligent Computing

直播預告 | 容器服務 ACK 彈性預測最佳實踐

Rust blockchain development - signature encryption and private key public key

概率论与数理统计考试重点复习路线

Threejs Internet of things, 3D visualization of factory

TPG x AIDU | AI leading talent recruitment plan in progress!

Threejs implements labels and displays labels with custom styles

【FineBI】使用FineBI制作自定义地图过程

MacBook安装postgreSQL+postgis
随机推荐
Introduction to RT thread kernel (5) -- memory management
Study notes 7
托管式服务网络:云原生时代的应用体系架构进化
根据入栈顺序判断出栈顺序是否合理
Rome链分析
防护电路中的元器件
线上故障突突突?如何紧急诊断、排查与恢复
level18
如何实现实时音视频聊天功能
NetSetMan pro (IP fast switching tool) official Chinese version v5.1.0 | computer IP switching software download
Threejs loads the city obj model, loads the character gltf model, and tweetjs realizes the movement of characters according to the planned route
Threejs Internet of things, 3D visualization of factory
Ffmepg usage guide
【虛幻引擎UE】實現UE5像素流部署僅需六步操作少走彎路!(4.26和4.27原理類似)
[phantom engine UE] the difference between running and starting, and the analysis of common problems
A application wakes up B should be a fast method
How to force activerecord to reload a class- How do I force ActiveRecord to reload a class?
[phantom engine UE] realize the animation production of mapping tripod deployment
Moco is not suitable for target detection? MsrA proposes object level comparative learning target detection pre training method SOCO! Performance SOTA! (NeurIPS 2021)...
What is the reason why the webrtc protocol video cannot be played on the easycvr platform?