zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 491递增子序列

    491. 递增子序列

    给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。

    示例:

    输入: [4, 6, 7, 7]
    输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]
    说明:

    给定数组的长度不会超过15。
    数组中的整数范围是 [-100,100]。
    给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。

    PS:
    DFS

    class Solution {
        public List<List<Integer>> findSubsequences(int[] nums) {
            List<List<Integer>> ans = new ArrayList<>();
            dfs(nums, new ArrayList<>(), ans, 0, -101);
            return ans;
        }
    
        private void dfs(int[] nums, List<Integer> list, List<List<Integer>> ans, int index, int lastNum) {
            if (list.size() > 1) {
                ans.add(new ArrayList<>(list));
            }
    
            for (int i = index; i < nums.length; i++) {
                if (nums[i] < lastNum) {
                    continue;
                }
    
                boolean repeat = false;
                for (int j = index; j <= i - 1; j++) {
                    if (nums[i] == nums[j]) {
                        repeat = true;
                        break;
                    }
                }
    
                if (repeat) {
                    continue;
                }
    
                list.add(nums[i]);
                dfs(nums, list, ans, i + 1, nums[i]);
                list.remove(list.size() - 1);
            }
        }
    }
    
  • 相关阅读:
    sabaki and leelazero
    apply current folder view to all folders
    string operation in powershell
    wirte function in powershell
    add environment path to powershell
    Module in powershell
    sql prompt
    vmware中鼠标在部分区域不能使用
    调整多个控件的dock的顺序
    行为型模型 策略模式
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075608.html
Copyright © 2011-2022 走看看