leecode377.组合总和IV

本题其实是多重背包问题,对于价值和重量都是nums[i]的的物品,求装满这个容量为4的背包共有多少种排列方式

如果是组合问题,那么遍历顺序是先物品后背包,这样能保证物品按从小到大顺序依次放置,对于实例1求出来为4;但是本题其实是排列问题,那么遍历顺序就应该是先背包再物品,先固定背包的大小,再依次放置物品进行试探就能保证求出排列数

cpp 复制代码
class Solution {
public:
    int combinationSum4(vector<int>& nums, int target) {
        int n=nums.size(),bagWeight=target;
        vector<int> dp(bagWeight+1,0);
        dp[0]=1;
        for(int i=0;i<=bagWeight;i++)
            for(int j=0;j<n;j++)
                if(i>=nums[j])
                    if(dp[i]<INT_MAX-dp[i-nums[j]])
                        dp[i]+=dp[i-nums[j]];
        return dp[bagWeight];
    }
};
相关推荐
mit6.8241 小时前
bfs|栈
算法
CoderYanger2 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
jllllyuz2 小时前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab
夏鹏今天学习了吗2 小时前
【LeetCode热题100(72/100)】前 K 个高频元素
leetcode
稚辉君.MCA_P8_Java2 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法
多多*2 小时前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven
.YM.Z3 小时前
【数据结构】:排序(一)
数据结构·算法·排序算法
Chat_zhanggong3454 小时前
K4A8G165WC-BITD产品推荐
人工智能·嵌入式硬件·算法
百***48074 小时前
【Golang】slice切片
开发语言·算法·golang
墨染点香4 小时前
LeetCode 刷题【172. 阶乘后的零】
算法·leetcode·职场和发展