随想录训练营38/60 | 完全背包;LC 518. 零钱兑换 II;LC 377. 组合总和 Ⅳ

news/2024/11/24 11:47:07/

完全背包

什么是完全背包?
完全背包和01背包的区别就是,完全背包能将某个物品添加无数次。
在二维dp数组迭代更新中体现为:
01背包dp数组由左上面的数组更新而成;
完全背包do数组由包括本行在内的左边的数组更新而成。
在一维dp数组迭代更新中体现为:
01背包是从后向前遍历;
完全背包是从前向后遍历。

LC 518. 零钱兑换 II

题目链接:LC 518. 零钱兑换 II
思路:完全背包问题,dp二维数组每一行是不用面额的硬币, 每一列是金额,dp数组内的值为有多少种方式得到该总金额(用该行和该行以上的硬币)。
代码

class Solution {
public:int change(int amount, vector<int>& coins) {//创建dp数组vector<int> dp(amount+1, 0);dp[0] = 1;for(int i=0; i<coins.size(); i++){for(int j=coins[i]; j<amount+1; j++){dp[j] = dp[j-coins[i]] + dp[j];}}return dp.back();}
};

LC 377. 组合总和 Ⅳ

题目链接:LC 377. 组合总和 Ⅳ
思路:要注意顺序不同的也被视为不同的序列。上一题为组合问题,本题为排列问题。都是完全背包问题,但是这两道题的遍历顺序不同。上一题遍历顺序是先遍历物品再遍历背包,本题的遍历顺序为先遍历背包再遍历物品。
代码

class Solution {
public:int combinationSum4(vector<int>& nums, int target) {vector<int> dp(target+1, 0);dp[0] = 1;for(int i=1; i<target+1; i++){//先遍历背包for(int j=0; j<nums.size(); j++){//再遍历物品if(i-nums[j]>=0&&dp[i]<INT_MAX-dp[i-nums[j]]){//后面是防止两数相加过大dp[i] += dp[i-nums[j]];}}}return dp.back();}
};

http://www.ppmy.cn/news/82599.html

相关文章

MATLAB算法实战应用案例精讲-【人工智能】基于机器视觉的机器人及机械臂运动规划

目录 前言 几个高频面试题目 移动机器人的移动和机械臂的路径规划之间的异同

CMD与DOS脚本编程【第十章】

预计更新 第一章. 简介和基础命令 1.1 介绍cmd/dos脚本语言的概念和基本语法 1.2 讲解常用的基础命令和参数&#xff0c;如echo、dir、cd等 第二章. 变量和运算符 2.1 讲解变量和常量的定义和使用方法 2.2 介绍不同类型的运算符和运算规则 第三章. 控制流程和条件语句 3.1 介…

vue做一个一直自增加载且永远不会超过百分之九十九的数值 制造正在加载假象

我们在src跟目录下创建一个utils目录下面创建一个continuousLoading.js 参考代码如下 let value 0;export default function(callback) {const timer setInterval(() > {if (callback&&(value || value 0)&&value < 99) {value 1;callback(value);}…

深度学习进阶篇-预训练模型[2]:Transformer-XL、Longformer、GPT原理、模型结构、应用场景、改进技巧等详细讲解

【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍&#xff1a;【深度学习入门到进阶】必看系列&#xff0c;含激活函数、优化策略、损失函数、模型调优、归一化…

【深度学习】基于Python Qt的口罩检测与报警系统

文章目录 yolov7训练系统集成数据库报警记录查看qt页面跳转方式qt 的数据库某表查看页面如何写q742971636 yolov7训练 yolov7:https://github.com/WongKinYiu/yolov7 人脸口罩数据集&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1bnxJPnoRNwUfVzLxKjIvkQ?pwdc0yc …

一文读懂“大语言模型”

1、背景 本文基于谷歌云的官方视频&#xff1a;《Introduction to Large Language Models》 &#xff0c;使用 ChatGPT4 整理而成&#xff0c;希望对大家入门大语言模型有帮助。 本课程主要包括以下 4 方面的内容&#xff1a; 大语言模型的定义描述大语言模型的用例解释提示…

AI百科:一个开启人工智能时代的综合性平台

无论是人工智能的快速发展还是AI技术在各个领域的广泛应用&#xff0c;都让我们对智能未来充满了期待和好奇。随着科技的进步&#xff0c;发现了一个好网站&#xff0c;一个集合了丰富AI工具和产品介绍的综合性网站—— AI百科。 在人工智能&#xff08;AI&#xff09;领域的快…

【微服务 | 学成在线】项目易错重难点分析(媒资管理模块篇·上)

文章目录 模块整体认识架构问题分析nacos配置管理搭建nacos公用配置配置优先级网关搭建 分布式文件系统什么是分布式文件系统MinIO数据恢复测试SDK 上传图片http请求头中的content-typeRequestPart接口分析Service层的优化 上传视频断点续传技术java代码模拟分块与合并上传视频…