非递减序列(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()
相关推荐
ServBay13 小时前
9 个 Python 第三方库推荐,不用 AI 都好像多出一个团队
后端·python
用户83562907805113 小时前
如何使用 Python 添加和管理 Excel 批注(完整示例)
后端·python
用户83562907805113 小时前
使用 Python 管理 Excel 工作表:创建、复制、删除与重命名
后端·python
荣码1 天前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
用户8356290780512 天前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟2 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨3 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
zzzzzz3103 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐3 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱3 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构