LeetCode491 非递减子序列

前言

题目: 491. 非递减子序列
文档: 代码随想录------非递减子序列
编程语言: C++
解题状态: 好难...

思路

注意不能对原数组进行排序。

代码

cpp 复制代码
class Solution {
private:
    vector<vector<int>> res;
    vector<int> path;
    void backtracking(vector<int>& nums, int startIndex) {
        if (path.size() > 1) {
            res.push_back(path);
        }

        unordered_set<int> uset;

        for (int i = startIndex; i < nums.size(); i++) {
            if ((!path.empty() && nums[i] < path.back()) || uset.find(nums[i]) != uset.end()) {
                continue;
            }
            uset.insert(nums[i]);
            path.push_back(nums[i]);
            backtracking(nums, i + 1);
            path.pop_back();
        }
    }
public:
    vector<vector<int>> findSubsequences(vector<int>& nums) {
        res.clear();
        path.clear();
        backtracking(nums, 0);
        return res;
    }
};
  • 时间复杂度: O ( n ∗ 2 n ) O(n*2^n) O(n∗2n)
  • 空间复杂度: O ( n ) O(n) O(n)
相关推荐
hetao17338374 分钟前
2026-09-27~28 hetao1733837 的刷题记录
c++·算法
2601_962218616 分钟前
C++的几种编译器的实现
开发语言·c++
Godspeed Zhao11 分钟前
现代智能雷达技术15——算法(1)
人工智能·算法·雷达
代码什么用14 分钟前
LeetCode-42. 接雨水
算法·leetcode
多弗朗皮卡丘17 分钟前
C++ stack和queue
开发语言·c++·deque·queue·stack·容器适配器
lengxuenong19 分钟前
枚举及其优化学习手册
c++·学习·算法·青少年编程
小O的算法实验室33 分钟前
IEEE TAI,RoCo:基于角色的LLM协作实现自动启发式设计
算法
SelectDB技术团队37 分钟前
Apache Doris 高性能 Open Lake Variant 读写技术解析(含对比数据)
数据结构·数据库·clickhouse·日志·apache doris·selectdb·湖仓架构升级
小范的技术工坊38 分钟前
大模型蒸馏
人工智能·算法·数据挖掘·大模型
Benny_Tang42 分钟前
P9527 [JOIST 2022] 洒水器 / Sprinkler 题解
c++·算法