[491][中等][DFS] 递增子序列
题目描述
给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。
示例:
说明:
给定数组的长度不会超过15。
数组中的整数范围是 [-100,100]。
给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。
解题思路
DFS
对于一个已有的递增序列, 判断当前值能否加入到这个递增序列当中, 只需与最后一个值比较. 如果不大于, 则pass, 继续向下搜索. 但如果大于, 可以有两个选择:
将这个值加入到递增序列当中, 继续向下搜索
无视这个值, 跳过, 然后向下搜索
按照这个思路构建DFS函数, 停止条件为搜索的索引越界. 使用LRU缓存中间结果, 避免重复搜索. 为了使用LRU, 将递增序列使用字符串表示, 使用特殊符号(下面的程序中使用的是;
字符)分隔数字.
最后更新于