@@ -61,7 +61,7 @@ https://leetcode-cn.com/problems/subsets/
6161
6262## 代码
6363
64- - 语言支持:JS,C++
64+ - 语言支持:JS,C++,Java,Python
6565
6666JavaScript Code:
6767
@@ -108,6 +108,57 @@ public:
108108};
109109```
110110
111+ Java Code:
112+
113+ ``` java
114+ class Solution {
115+ // 结果
116+ List<List<Integer > > res = new ArrayList ();
117+ public List<List<Integer > > subsets (int [] nums ) {
118+ backtrack(nums, 0 , new ArrayList<Integer > ());
119+ return res;
120+ }
121+
122+ public void backtrack (int [] nums , int start , ArrayList<Integer > track )
123+ {
124+ // 注意:深拷贝
125+ res. add(new ArrayList (track));
126+ for (int i= start; i< nums. length;i++ )
127+ {
128+ // 做选择
129+ track. add(nums[i]);
130+ // 回溯
131+ backtrack(nums, i+ 1 , track);
132+ // 撤销选择
133+ track. remove(track. size()- 1 );
134+ }
135+ }
136+ }
137+ ```
138+
139+ python Code:
140+
141+ ``` py
142+ class Solution :
143+ def subsets (self , nums ):
144+ self .res = []
145+ self .track = []
146+ self .backtrack(nums, 0 , self .track)
147+
148+ return self .res
149+
150+ def backtrack (self , nums , start , track ):
151+ # 注意深拷贝
152+ self .res.append(list (self .track))
153+ for i in range (start, len (nums)):
154+ # 做选择
155+ self .track.append(nums[i])
156+ # 回溯
157+ self .backtrack(nums, i+ 1 , self .track)
158+ # 撤销选择
159+ self .track.pop()
160+ ```
161+
111162## 相关题目
112163
113164- [ 39.combination-sum] ( ./39.combination-sum.md )
0 commit comments