力扣 中等 377.组合总和

文章目录

题目介绍



题解

本质是爬楼梯,相当于每次往上爬 nums[i]步

本题和爬楼梯是一个思路,只不过我们每次从 nums 中选一个数,作为往上爬的台阶数,问爬 target 个台阶有多少种方案。爬楼梯那题可以看作 nums=[1,2],因为每次只能爬 1 个或 2 个台阶。

代码如下:

java 复制代码
class Solution {
    public int combinationSum4(int[] nums, int target) {
        int[] dp = new int[target + 1];
        dp[0] = 1;  // 参考爬楼梯
        for (int i = 1; i <= target; i++) {
            for (int x : nums) {
                if (x <= i) {
                    dp[i] += dp[i - x];
                }
            }
        }
        return dp[target];
    }
}
相关推荐
星轨初途4 小时前
数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
c语言·开发语言·数据结构·经验分享·笔记·算法·排序算法
人类发明了工具4 小时前
【机器人-激光雷达】点云时间运动补偿
算法·机器人
north_eagle5 小时前
向量搜索技术深度研究报告:架构原理、核心算法与企业级应用范式
算法·架构
椰萝Yerosius5 小时前
[题解]2024CCPC郑州站——Z-order Curve
c++·算法
小曹要微笑5 小时前
STM32F7 时钟树简讲(快速入门)
c语言·stm32·单片机·嵌入式硬件·算法
南山安6 小时前
栈(Stack):从“弹夹”到算法面试题的进阶之路
javascript·算法·面试
2301_764441336 小时前
Python构建输入法应用
开发语言·python·算法
AI科技星7 小时前
为什么变化的电磁场才产生引力场?—— 统一场论揭示的时空动力学本质
数据结构·人工智能·经验分享·算法·计算机视觉
TheLegendMe8 小时前
贪心+线程安全单例
算法·哈希算法
豐儀麟阁贵8 小时前
8.5在方法中抛出异常
java·开发语言·前端·算法