491.increasing-subsequences.java 950 B

1234567891011121314151617181920212223242526272829
  1. import java.util.LinkedList;
  2. class Solution {
  3. public List<List<Integer>> findSubsequences(int[] nums) {
  4. Set<LinkedList<Integer>> set = new HashSet<>();
  5. List<LinkedList<Integer>> lists = new LinkedList<>();
  6. for (int i : nums) {
  7. lists.clear();
  8. for (LinkedList<Integer> list : set) {
  9. if (list.getLast() <= i) {
  10. LinkedList<Integer> newList = new LinkedList<>(list);
  11. newList.add(i);
  12. lists.add(newList);
  13. }
  14. }
  15. for (LinkedList<Integer> list : lists) {
  16. set.add(list);
  17. }
  18. LinkedList<Integer> list = new LinkedList<>();
  19. list.add(i);
  20. set.add(list);
  21. }
  22. List<List<Integer>> res = new LinkedList<>();
  23. for (List list : set) {
  24. if (1 < list.size()) res.add(list);
  25. }
  26. return res;
  27. }
  28. }