首页 > 其他 > 详细

491. Increasing Subsequences

时间:2017-08-08 09:04:25      阅读:267      评论:0      收藏:0      [点我收藏+]
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: Input: [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.

带重复节点的subset

 public List<List<Integer>> findSubsequences(int[] nums) {
        List<List<Integer>> ans = new ArrayList<>();
        List<Integer> list = new ArrayList<>();
        Arrays.sort(nums);
        helper(nums, 0, ans, list);
        return ans;
        
    }
    private void helper(int[] nums, int pos, List<List<Integer>> ans, List<Integer> list) {
        if (list.size() >= 2) {
           
            ans.add(new ArrayList(list));
        }
        for (int i = pos; i < nums.length; i++) {
            if (i != pos && nums[i - 1] == nums[i]){
                continue;
            }
           
                list.add(nums[i]);
                helper(nums, i + 1, ans, list);
                list.remove(list.size() - 1);
            
        }
    }

  

491. Increasing Subsequences

原文:http://www.cnblogs.com/apanda009/p/7304914.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!