LeetCode 377.组合总和IV

题目

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

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

思路

本质上是 70. 爬楼梯,每次从 nums 中选一个数,作为往上爬的台阶数,计算爬 target 个台阶有多少种方案。70 那题相当于 nums=[1,2],因为每次只能爬 1 个或 2 个台阶。

代码

java 复制代码
class Solution {
    public int combinationSum4(int[] nums, int target) {
        int[] memo = new int[target + 1];
        Arrays.fill(memo, -1);
        return dfs(target, nums, memo);
    }

    private int dfs(int i, int[] nums, int[] memo) {
        if (i == 0) {
            return 1;
        }
        if (memo[i] != -1) {
            return memo[i];
        }
        int total = 0;
        for (int num : nums) {
            if (num <= i) {
                total += dfs(i - num, nums, memo);
            }
        }
        memo[i] = total;
        return memo[i];
    }
}

性能

相关推荐
独好紫罗兰4 分钟前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
2401_841495649 分钟前
【LeetCode刷题】二叉树的直径
数据结构·python·算法·leetcode·二叉树··递归
budingxiaomoli9 分钟前
优选算法-字符串
算法
我是咸鱼不闲呀24 分钟前
力扣Hot100系列19(Java)——[动态规划]总结(上)(爬楼梯,杨辉三角,打家劫舍,完全平方数,零钱兑换)
java·leetcode·动态规划
qq74223498428 分钟前
APS系统与OR-Tools完全指南:智能排产与优化算法实战解析
人工智能·算法·工业·aps·排程
数智工坊33 分钟前
【数据结构-树与二叉树】4.5 线索二叉树
数据结构
A尘埃1 小时前
超市购物篮关联分析与货架优化(Apriori算法)
算法
.小墨迹1 小时前
apollo学习之借道超车的速度规划
linux·c++·学习·算法·ubuntu
数智工坊1 小时前
【数据结构-树与二叉树】4.3 二叉树的存储结构
数据结构
独好紫罗兰1 小时前
对python的再认识-基于数据结构进行-a004-列表-实用事务
开发语言·数据结构·python