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];
    }
};
相关推荐
Channing Lewis8 分钟前
聚类的主要算法和介绍
算法·机器学习·聚类
南宫生29 分钟前
力扣-数据结构-8【算法学习day.79】
java·数据结构·学习·算法·leetcode
硬禾科技39 分钟前
FPGA、STM32、ESP32、RP2040等5大板卡,结合AI,更突出模拟+数字+控制+算法
人工智能·stm32·算法·ai·fpga开发
凭君语未可44 分钟前
常见编程语言的字符串拼接函数
算法
计算机学长大白1 小时前
C中如何生成随机数并用于编程?
c语言·算法
挂机加载中1 小时前
7-58 输出不重复的数组元素
数据结构·算法
ゞ 正在缓冲99%…1 小时前
leecode322.零钱兑换
数据结构·算法·leetcode
Evand J1 小时前
《MATLAB创新性滤波算法》专栏目录,持续更新中……
开发语言·算法·matlab
爱学习的橙子羊1 小时前
118.杨辉三角&120.三角形最小路径和
算法
W Y1 小时前
【AR的手势识别算法有哪些】
算法·ar·手势识别