首页 > 其他 > 详细

491. Increasing Subsequences

时间:2018-10-28 10:44:57      阅读:120      评论:0      收藏:0      [点我收藏+]

这道题要用Set去做
因为没有sort过 所以在后面也可能出现重复的东西

https://leetcode.com/problems/increasing-subsequences/discuss/97130/Java-20-lines-backtracking-solution-using-set-beats-100.

 

 

 1 class Solution {
 2     Set<List<Integer>> res = new HashSet<>();
 3     public List<List<Integer>> findSubsequences(int[] nums) {
 4         if(nums.length == 0) new ArrayList<>(res);
 5         visited = new boolean[nums.length];
 6         backtrack(nums, new ArrayList<>(), 0);
 7         return new ArrayList<>(res);
 8        
 9     }
10     
11     public void backtrack(int[] nums, List<Integer> list, int pos){
12         if(list.size() > 1){
13             res.add(new ArrayList<>(list));
14         }
15         
16         for(int i = pos; i < nums.length; i++){
17             if(list.size() != 0 && (nums[i] < list.get(list.size()-1))){
18                 continue;
19             }else{
20                 list.add(nums[i]);
21                 visited[i] = true;
22                 backtrack(nums, list, i+1);
23                 visited[i] = false;
24                 list.remove(list.size()-1);
25             }
26             
27             
28         }         
29         
30     }
31 }

 

491. Increasing Subsequences

原文:https://www.cnblogs.com/goPanama/p/9864267.html

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