491. Increasing Subsequences
Problem description:
Given an integer array, your task is to find all the different possible increasing subsequences of the given array, and the length of an increasing subsequence should be at least 2 .
Example:1
2Input: [4, 6, 7, 7]
Output: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]
Note:
The length of the given array will not exceed 15.
The range of integer in the given array is [-100,100].
The given array may contain duplicates, and two equal integers should also be considered as a special case of increasing sequence.
Solution:
We can use dfs template to solve this question.
The tricky part is to use an unordered_set to store the numbers that already in current layer to avoid duplicate elements.
1 | class Solution { |
time complexity: $O(2^n))$
space complexity: $O(n)$
reference:
https://goo.gl/wp2sbS