力扣 中等 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];
    }
}
相关推荐
独行soc12 分钟前
2025年渗透测试面试题总结-渗透测试红队面试九(题目+回答)
linux·安全·web安全·网络安全·面试·职场和发展·渗透测试
学习中的码虫36 分钟前
数据结构中的高级排序算法
数据结构·算法·排序算法
山北雨夜漫步40 分钟前
机器学习 Day17 朴素贝叶斯算法-----概率论知识
人工智能·算法·机器学习
是店小二呀1 小时前
【优选算法 | 字符串】字符串模拟题精选:思维+实现解析
android·c++·算法
成工小白1 小时前
【Linux】进程地址空间
linux·算法
凤年徐1 小时前
【C/C++】自定义类型:结构体
c语言·开发语言·c++·经验分享·笔记·算法
Inverse1622 小时前
C语言_自定义类型:结构体
c语言·开发语言·算法
Musennn2 小时前
102. 二叉树的层序遍历详解:队列操作与层级分组的核心逻辑
java·数据结构·算法·leetcode
越来越无动于衷3 小时前
java数组题(5)
java·算法
理论最高的吻3 小时前
77. 组合【 力扣(LeetCode) 】
c++·算法·leetcode·深度优先·剪枝·回溯法