栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Leetcode 377-组合总和 Ⅳ

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Leetcode 377-组合总和 Ⅳ

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

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

题解

本题为排列问题
排列问题和组合问题区别参考零钱兑换问题II

//只用求个数不用求具体的组合,用dp(完全背包(排列数))
//排列数:容量在外,遍历顺序从低到高 物品在内,遍历顺序从低到高
//1.定义:dp[j]:总和为target的排列总数
//2.动态转移方程 dp[j]+=dp[j-nums[i]] dp=new int[target+1]
//3.初始化 dp[0]=1 表示使得容量为0的方案有1种,即什么数都不选
//4.遍历顺序 容量在外,遍历顺序从低到高 物品在内,遍历顺序从低到高
//5.返回值 dp[target]
class Solution {
    public int combinationSum4(int[] nums, int target) {
        int[] dp=new int[target+1];
        dp[0]=1;
        for(int j=0;j<=target;j++){
            for(int i=0;i
                if(j>=nums[i]) dp[j]+=dp[j-nums[i]];
            }
        }
        return dp[target];
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913635.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号