# 0491. Increasing Subsequences
###### tags: `Leetcode` `Medium` `backtracking` `DFS`
Link: https://leetcode.com/problems/increasing-subsequences/
## 思路
和[0040. Combination Sum II](https://hackmd.io/cOOug_AXSUeBnJKIjdF2IA)有点像 但这题的问题在于不能给nums排序
所以如果遇到[1,5,1,1] 就会有两个[1,1]出现((index 0, index 2), (index 2, index 3))
比较简单的解决办法就是把记录答案的list换成set
## Code
```java=
class Solution {
public List<List<Integer>> findSubsequences(int[] nums) {
Set<List<Integer>> ans = new HashSet<>();
dfs(ans, new ArrayList<>(), nums, 0);
return new ArrayList(ans);
}
private void dfs(Set<List<Integer>> ans, List<Integer> curr, int[] nums, int start){
if(curr.size()>1) ans.add(new ArrayList<>(curr));
for(int i=start; i<nums.length; i++){
if(i>start && nums[i]==nums[i-1]) continue;
if(curr.size()==0 || curr.get(curr.size()-1)<=nums[i]){
curr.add(nums[i]);
dfs(ans, curr, nums, i+1);
curr.remove(curr.size()-1);
}
}
}
}
```