非递减序列(python)

思路:

非递减子序列 ,也是一种子集问题,也需要在进入递归就收集答案。这里需要注意,因为要求是序列,所以不能排序,这里需要使用set()在树层去重。同时,对于当前遍历到的元素,不能比path里面的小,如果小,则跳过该元素的搜索。

复制代码
#非递减序列 也是一种子集问题
#有顺序要求,所以不能排序,要用set在树层去重
def f(nums):
    res=[]
    path=[]
    n=len(nums)
    def dfs(start_idx):
        if len(path)>1:  #长度大于2才收集
            res.append(path[:])
        st=set()
        for i in range(start_idx,n):
            if (path and nums[i]<path[-1]) or nums[i] in st:  #去重逻辑
                continue
            st.add(nums[i])
            path.append(nums[i])
            dfs(i+1)
            path.pop()
    dfs(0)
    print(res)
    return res
def main():
    nums=list(map(int,input().split()))
    f(nums)
if __name__=="__main__":
    main()
相关推荐
许彰午5 小时前
14_Java泛型完全指南
java·windows·python
广州灵眸科技有限公司5 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) Easy-Eai编译环境准备与更新
服务器·前端·人工智能·python·深度学习
TechWayfarer5 小时前
IP风险等级评估接入实战:金融信贷如何用IP画像辅助风控审核
python·tcp/ip·安全·金融
Esaka_Forever5 小时前
uv init 完整用法(Python 最快包管理器)
服务器·python·uv
神仙别闹8 小时前
基于Python + SQL server 实现(GUI)原神圣遗物管理与角色数值模拟系统
java·数据库·python
是有头发的程序猿9 小时前
电商自动化实战:淘宝/天猫item_get商品详情API全量采集教程(Python源码)
java·python·自动化
_不会dp不改名_9 小时前
python-opencv环境搭建
开发语言·python·opencv
勇往直前plus9 小时前
智能体记忆概述
人工智能·python·ai
HappyAcmen9 小时前
9.复盘API全套流程
开发语言·python
zh路西法9 小时前
【Linux 串口通信】基于 C++ 多线程的同步/异步串口实现
linux·运维·c++·python