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)
相关推荐
小苗卷不动几秒前
ps axj | grep 和 which命令
c++
云泽80818 分钟前
第十五届蓝桥杯大赛软件赛省赛C/C++大学B组
c语言·c++·算法·蓝桥杯
Wadli22 分钟前
集群C++聊天服务器
服务器·开发语言·c++
洛水水30 分钟前
# 线程池详解:从原理到实现
c++·线程池
大模型最新论文速读31 分钟前
VQKV:KV Cache 压缩 82% 性能几乎不降
人工智能·深度学习·算法·机器学习·自然语言处理
yongui4783434 分钟前
基于MSP430和Zigbee技术的煤矿综合监控系统设计与实现
算法
Ww.xh40 分钟前
ESP8266连接AI大模型完整指南
人工智能·算法·语言模型
程序员雷欧43 分钟前
Redis基础知识全解析:从数据结构到生产实战
数据结构·数据库·redis
思麟呀1 小时前
HTTP的Cookie和Session
linux·网络·c++·网络协议·http
小明同学011 小时前
linux进程(下)
linux·服务器·c++