[leetCode刷题笔记]491. Increasing Subsequences

来源:互联网 发布:海文网络计划软件使用 编辑:程序博客网 时间:2024/06/07 03:41

这道题用hashset存放list,这样就不会出现重复的情况。如果array里面任何数都不相同,那么不用Set应该也可以

public class Solution {    public List<List<Integer>> findSubsequences(int[] nums) {        // using hash set to remove duplicate element        Set<List<Integer>> res= new HashSet<List<Integer>>();        helper(nums, 0, res, new ArrayList<Integer>());        List result = new ArrayList(res);        return result;    }    private void helper(int[] nums, int start, Set<List<Integer>> res, List<Integer> incr) {        if (incr.size() > 1) {            res.add(new ArrayList<>(incr));        }        for (int i = start; i < nums.length; i++) {            if (incr.size() == 0 || incr.get(incr.size() - 1) <= nums[i]) {                incr.add(nums[i]);                helper(nums, i + 1, res, incr);                incr.remove(incr.size() - 1);            }        }                    }}


0 0
原创粉丝点击