mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 00:43:04 +08:00
添加 0491.递增子序列 go版本
添加 0491.递增子序列 go版本
This commit is contained in:
@ -257,6 +257,34 @@ class Solution:
|
||||
|
||||
Go:
|
||||
|
||||
```golang
|
||||
func findSubsequences(nums []int) [][]int {
|
||||
var subRes []int
|
||||
var res [][]int
|
||||
backTring(0,nums,subRes,&res)
|
||||
return res
|
||||
}
|
||||
func backTring(startIndex int,nums,subRes []int,res *[][]int){
|
||||
if len(subRes)>1{
|
||||
tmp:=make([]int,len(subRes))
|
||||
copy(tmp,subRes)
|
||||
*res=append(*res,tmp)
|
||||
}
|
||||
history:=[201]int{}//记录本层元素使用记录
|
||||
for i:=startIndex;i<len(nums);i++{
|
||||
//分两种情况判断:一,当前取的元素小于子集的最后一个元素,则继续寻找下一个适合的元素
|
||||
// 或者二,当前取的元素在本层已经出现过了,所以跳过该元素,继续寻找
|
||||
if len(subRes)>0&&nums[i]<subRes[len(subRes)-1]||history[nums[i] + 100]==1{
|
||||
continue
|
||||
}
|
||||
history[nums[i] + 100]=1//表示本层该元素使用过了
|
||||
subRes=append(subRes,nums[i])
|
||||
backTring(i+1,nums,subRes,res)
|
||||
subRes=subRes[:len(subRes)-1]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Javascript:
|
||||
|
||||
```Javascript
|
||||
|
Reference in New Issue
Block a user