力扣 中等 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];
    }
}
相关推荐
MM_MS3 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E3 小时前
【二分法】寻找峰值
算法
mit6.8243 小时前
位运算|拆分贪心
算法
ghie90904 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体14 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk9984 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx4 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++4 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd5 小时前
C++引用:高效编程的别名利器
算法
鱼跃鹰飞5 小时前
Leetcode1891:割绳子
数据结构·算法