※ 引述《pandix (面包屌)》之铭言:
: 491. Non-decreasing Subsequences
: 给你一个 array nums,要你回传他的所有非严格递增的 subsequences,顺序任意
: subsequence 长度至少要是 2
: Example 1:
: Input: nums = [4,6,7,7]
: Output: [[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]
: Example 2:
: Input: nums = [4,4,3,2,1]
: Output: [[4,4]]
: 思路:
1.看到要求所有的可能性而且测资的数量很小,基本上百分之百是用回溯法穷举。
2.用回溯法可以轻易的求出所有的子序列组合,有问题的是[4,6,x,7]和[4,6,7,x]
都是[4,6,7]算是同一个,我们要对他去重。
3.去重的办法就是用一个Set来记录当前起点后面的数字,如果遇到已经用过的就跳
过就可以过滤掉上面那种case。
Java Code: