非递减序列(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()
相关推荐
leisoo80975 小时前
100GBA股股票数据怎么存ClickHouseRedisMySQLJSON完整对比
大数据·linux·服务器·开发语言·python
WangYan20225 小时前
基于XGBoost与AI的生态—地学多源数据建模:植被与土地利用识别、土壤碳氮空间预测、生物多样性驱动机制、土壤微生物功能预测、生态退化与风险识别
python·机器学习·xgboost
金銀銅鐵7 小时前
[Python] 借助 turtle 逐字展示唐诗《金缕衣》
python
Python大数据分析@9 小时前
使用大模型MCP采集数据,爬虫已经无门槛
python·网络爬虫
quantdash_cc9 小时前
告别自建 Requests/BS4 网页爬虫:基于 QuantDash 搭建零维保的高性能量化行情流水线
开发语言·爬虫·python·pandas·量化·quantdash
65岁退休Coder10 小时前
LangChain v1.3.4 笔记 - 07 补充:链式调用 LCEL
后端·python·langchain
卷无止境10 小时前
FastAPI 部署在 Nginx 后面到底该怎么配
后端·python
半亩码田10 小时前
C#转Python第3.1篇:Python 的 class 没有访问修饰符?面向对象的另一条路
开发语言·python·c#
Wzx19801211 小时前
python沙箱和docker沙箱你选对了吗?
开发语言·python·docker
Python私教11 小时前
签名 URL 刷新导致审批失效?别急着删掉所有 query
python·安全