给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。
解题思路:结果集cur用集合存储,把第一个元素以元组方式添加进来
遍历列表,当前元素存到临时变量nxt中(元组方式),并与cur的每个元素的最后一个值比较,大于则添加到nxt,cur 与 nxt 并值操作,最后过滤掉长度低于2的值。
class Solution:
def findSubsequences(self, nums: List[int]) -> List[List[int]]:
if len(nums)<2:
return []
cur = set()
cur.add((nums[0],))
for num in nums[1:]:
nxt = set()
nxt.add((num,))
for tmp in cur:
if tmp[-1] <= num:
nxt.add(tmp + (num,))
cur |= nxt
return [sub for sub in cur if len(sub) > 1]