当前位置:网站首页>力扣:377. 组合总和 Ⅳ
力扣:377. 组合总和 Ⅳ
2022-08-09 22:11:00 【empty__barrel】
题目:
给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。
题目数据保证答案符合 32 位整数范围。
解析:
dp数组含义:
dp[j]: 凑成目标正整数为i的排列个数为dp[i]
递推公式:
dp[i] += dp[i - nums[j]];
初始化:
初始化为0,这样才不会影响dp[i]累加所有的dp[i - nums[j]]
遍历顺序:
这是一个完全背包,所以是顺序遍历,但是这个题目给的测试用例表示dp中的序列是排列,所以要注意两个for循环嵌套的顺序
- 如果求组合数就是外层for循环遍历物品,内层for遍历背包
- 如果求排列数就是外层for遍历背包,内层for循环遍历物品
题目数据保证答案符合 32 位整数范围
- dp[j] < INT_MAX - dp[j - nums[i]]所以有这个判断条件
代码:
class Solution {
public:
int combinationSum4(vector<int>& nums, int target) {
vector<int>dp(target+1,0);
dp [0] = 1;
int bagweight = target;
for(int j = 0; j <= bagweight; ++j){
for(int i = 0; i < nums.size(); ++i){
if(j >= nums[i] && dp[j] < INT_MAX - dp[j - nums[i]]) dp[j] += dp[j-nums[i]];
}
}
return dp[target];
}
};
边栏推荐
猜你喜欢

Qt message mechanism and events

都在说云原生,那云原生到底是什么?

Tencent continues to wield the "big knife" to reduce costs and increase efficiency, and free catering benefits for outsourced employees have been cut

OSG笔记:使用setFontResolution设置字体分辨率

外包的水有多深?腾讯15k的外包测试岗能去吗?

金仓数据库 KingbaseGIS 使用手册(6.5. 几何对象编辑函数)

Qt 消息机制和事件

迁移学习 & 凯明初始化

深度学习100例 —— 循环神经网络(RNN)实现股票预测

干货!迈向鲁棒的测试时间适应
随机推荐
Pytorch分布式训练/多卡训练DDP——模型初始化(torch.distribute 与 DDP的区别)
集群的基础形式
VR全景拍摄如何拍摄?如何使用拍摄器材?
pip 离线到内网安装包
1018.值周
Qt message mechanism and events
都在说云原生,那云原生到底是什么?
Day 12 of learning to program
一体化伺服电机在三轴钻孔机中的应用
iNFTnews | 迪士尼如何布局Web3
直播预告 | ICML 2022 11位一作学者在线分享神经网络,图学习等前沿研究
OSG笔记:使用setFontResolution设置字体分辨率
集合运算样例
daemon
Redis集群
信息系统项目管理师---第十一章项目风险管理历年考题
联盟链技术应用的难点
守护进程
mysql 、pg 查询日期处理
【微信小程序开发(八)】音频背景音乐播放问题汇总