@@ -257,6 +257,34 @@ class Solution:
257257
258258Go:
259259
260+ ``` golang
261+ func findSubsequences (nums []int ) [][]int {
262+ var subRes []int
263+ var res [][]int
264+ backTring (0 ,nums,subRes,&res)
265+ return res
266+ }
267+ func backTring (startIndex int ,nums ,subRes []int ,res *[][]int ){
268+ if len (subRes)>1 {
269+ tmp := make ([]int ,len (subRes))
270+ copy (tmp,subRes)
271+ *res=append (*res,tmp)
272+ }
273+ history := [201 ]int {}// 记录本层元素使用记录
274+ for i := startIndex;i<len (nums);i++{
275+ // 分两种情况判断:一,当前取的元素小于子集的最后一个元素,则继续寻找下一个适合的元素
276+ // 或者二,当前取的元素在本层已经出现过了,所以跳过该元素,继续寻找
277+ if len (subRes)>0 &&nums[i]<subRes[len (subRes)-1 ]||history[nums[i] +100 ]==1 {
278+ continue
279+ }
280+ history[nums[i] +100 ]=1 // 表示本层该元素使用过了
281+ subRes=append (subRes,nums[i])
282+ backTring (i+1 ,nums,subRes,res)
283+ subRes=subRes[:len (subRes)-1 ]
284+ }
285+ }
286+ ```
287+
260288#"diff-abd5008aea5ea7cb340fa8385d37721e336b3d6b30ec7dba5e2e5fbbba5022b9-261-289-0" data-selected="false" role="gridcell" tabindex="-1" valign="top">261
289
262290``` Javascript