-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path491.go
More file actions
36 lines (32 loc) · 939 Bytes
/
491.go
File metadata and controls
36 lines (32 loc) · 939 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
import "strings"
import "fmt"
var hash map[string]bool
var ret [][]int
func findSubsequences(nums []int) [][]int {
var hash map[string]bool
var ret [][]int
hash = make(map[string]bool)
var dfs1 func(int, []int)
dfs1 = func (start int, path []int) {
if len(path) >= 2 {
str := strings.Replace(strings.Trim(fmt.Sprint(path), "[]"), " ", ",", -1)
_, ok := hash[str]
if false == ok {
tmp := make([]int, len(path))
copy(tmp, path)
ret = append(ret, tmp)
hash[str] = true
}
}
for i := start; i < len(nums); i ++ {
if len(path) == 0 || nums[i] >= path[len(path) - 1] {
path = append(path, nums[i])
dfs1(i + 1, path)
path = path[:(len(path) - 1)]
}
}
}
dfs1(0, []int{})
return ret
}