491. 递增子序列

给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。

数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/increasing-subsequences
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

import java.util.*;

class Solution {
    private List<List<Integer>> ans = new ArrayList<>();

    private LinkedList<Integer> path = new LinkedList<>();

    private void solve(int[] nums, int index, int prev) {
        if (index == nums.length) {
            if (path.size() >= 2) {
                ans.add(new ArrayList<>(path));
            }
            return;
        }
        if (nums[index] != prev) {
            solve(nums, index + 1, prev);
        }
        if (nums[index] >= prev) {
            path.offerLast(nums[index]);
            solve(nums, index + 1, nums[index]);
            path.pollLast();
        }
    }

    public List<List<Integer>> findSubsequences(int[] nums) {
        solve(nums, 0, -101);
        return ans;
    }
}
posted @   Tianyiya  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示