給出一個(gè)數(shù)列,輸出所有不重復(fù)的單調(diào)不減子序列
DFS,用python的tuple存儲(chǔ)中間結(jié)果(因?yàn)閠uple類型支持哈希)
1 #491
2 #Runtime: 209 ms (Beats 62.86%)
3 #Memory: 22.1 MB (Beats 44.29%)
4
5 class Solution(object):
6 def findSubsequences(self, nums):
7 """
8 :type nums: List[int]
9 :rtype: List[List[int]]
10 """
11 self.ans = set()
12 def DFS(i, t):
13 if len(t) > 1:
14 self.ans.add(tuple(t))
15 if i == len(nums):
16 return
17 if not t or nums[i] >= t[-1]:
18 DFS(i + 1, t + [nums[i]])
19 DFS(i + 1, t)
20
21 DFS(0, [])
22 return self.ans