【动态规划专栏】动态规划:似包非包---不同的二叉树

简介: 【动态规划专栏】动态规划:似包非包---不同的二叉树


题目来源

本题来源为:

Leetcode377. 组合总和 Ⅳ

题目描述

给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。

题目数据保证答案符合 32 位整数范围。

算法原理

1.状态表示

根据问题分析,分析出重复子问题

经验+题目要求

对于本题而言就是:

dp[i]表示:凑成总和为i,一共有多少种排列数

2.状态转移方程

因此状态方程为:

dp[i]+=dp[i-x];

3.初始化

dp[0]=1

4.填表顺序

从左往右

5.返回值

返回dp[target]

代码实现

动态规划的代码基本就是固定的四步:

1.创建dp表
2.初始化
3.填表
4.返回值

本题完整代码实现:

class Solution 
{
public:
    int combinationSum4(vector<int>& nums, int target) 
    {
        vector<double> dp(target+1);
        dp[0]=1;
        for(int i=1;i<=target;i++)
        {
            for(auto x:nums)
                if(i>=x)
                    dp[i]+=dp[i-x];
        }
        return dp[target];
    }
};
相关文章
|
移动开发 监控 小程序
mPaaS常见问题之音视频通话微信小程序通话界面录制为画中画模式如何解决
mPaaS(移动平台即服务,Mobile Platform as a Service)是阿里巴巴集团提供的一套移动开发解决方案,它包含了一系列移动开发、测试、监控和运营的工具和服务。以下是mPaaS常见问题的汇总,旨在帮助开发者和企业用户解决在使用mPaaS产品过程中遇到的各种挑战
321 0
|
Kubernetes 数据可视化 数据安全/隐私保护
云服务器CentOS8.2Docker图形化管理工具Portainer安装部署
云服务器CentOS8.2Docker图形化管理工具Portainer安装部署
748 0
云服务器CentOS8.2Docker图形化管理工具Portainer安装部署
|
3月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
260 0
|
4月前
|
安全 测试技术 API
Python 单元测试详解
单元测试是Python开发中不可或缺的环节,能确保代码按预期运行、发现Bug、提升代码质量并支持安全重构。本文从基础概念讲起,逐步介绍Python单元测试的实践方法,涵盖unittest框架、pytest框架、断言使用、Mock技巧及测试覆盖率分析,助你全面掌握单元测试技能。
242 0
|
6月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件实现代码及详细开发流程解析
这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
282 1
kettle开发篇-记录关联(笛卡尔积)
kettle开发篇-记录关联(笛卡尔积)
578 0
|
供应链 监控 Java
【开题报告】基于SpringBoot的药店药品管理系统的设计与实现
【开题报告】基于SpringBoot的药店药品管理系统的设计与实现
1264 0
|
算法 Java C++
C++和Python在内存管理上的主要区别是什么?
【7月更文挑战第2天】C++和Python在内存管理上的主要区别是什么?
395 1
|
缓存 前端开发 JavaScript
Parcel-极速零配置Web应用打包工具
Parcel-极速零配置Web应用打包工具
288 1
|
Java
Java中的异常处理:深入理解try-catch语句
【6月更文挑战第15天】本文将深入探讨Java中的异常处理机制,特别是try-catch语句的使用。我们将通过实例来理解异常处理的重要性,以及如何在编程中有效地使用try-catch语句来捕获和处理异常。
481 3