当前位置: 首页 > article >正文

Python | Leetcode Python题解之第491题非递减子序列

题目:

题解:

class Solution:
    def findSubsequences(self, nums: List[int]) -> List[List[int]]:

        def dfs(i, tmp):
            if i == len(nums):
                if len(tmp) >= 2:
                    res.append(tmp[:])      # 拷贝,tmp[:]而非tmp
                return
            
            # 选 nums[i]
            if not tmp or nums[i]>=tmp[-1]: # 需满足递增
                tmp.append(nums[i])         # 选nums[i]
                dfs(i+1, tmp)
                tmp.pop()                   # 回溯复原
                # dfs(i+1, tmp+[nums[i]])   # 与以上三行等价
            
            # 不选 nums[i]:
            # 只有在nums[i]不等于前一项tmp[-1]的情况下才考虑不选nums[i]
            # 即若nums[i] == tmp[-1],则必考虑选nums[i],不予执行不选nums[i]的情况
            if not tmp or (tmp and nums[i] != tmp[-1]): # 避免重复
                dfs(i+1, tmp)


        res = []
        dfs(0, [])
        return res

http://www.kler.cn/news/355845.html

相关文章:

  • 基于SpringBoot+Vue+uniapp的电影信息推荐APP的详细设计和实现
  • 【Linux探索学习】第六弹——Linux的工具(一):Ubuntu系统下的软件包管理器
  • 双十一母婴专场 2024新手妈妈必备指南
  • 域7:安全运营 第16章 安全运营管理
  • 服务器开放ftp端口可能会被攻击吗?
  • Android OpenGL触控反馈
  • 多元统计实验报告内容
  • WebSocked基础
  • kubernetes给service动态增加服务端口
  • 018_FEA_Structure_Static_in_Matlab三维结构静力学分析
  • JS | JS之元素偏移量 offset 系列属性详解
  • RHCE笔记-时间服务器搭建
  • 【Flutter】基础入门:代码基本结构
  • 深度学习:元学习(Meta-Learning)详解
  • 自搭建VSCode的Make构建工具选择
  • 深度学习的关键概念和术语
  • MySQL-14.DQL-分组查询
  • 用python绘制钟表,并实现实际应用
  • HarmonyOS中ArkUi框架中常用的装饰器
  • 面对配分函数 - 噪扰对比估计(NCE)篇