【代码随想录第46天】 动态规划6

news2024/12/27 14:01:57

代码随想录第46天| 动态规划6

  • 完全背包
  • 518. 零钱兑换 II
  • 377. 组合总和 Ⅳ

完全背包

代码随想录:完全背包

有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。

完全背包和01背包问题唯一不同的地方就是,每种物品有无限件

01背包和完全背包唯一不同体现在遍历顺序上,完全背包遍历背包是正序遍历

518. 零钱兑换 II

LeetCode题目: 518. 零钱兑换 II
代码随想录: 518. 零钱兑换 II

在这里插入图片描述
在这里插入图片描述
遍历顺序:先遍历物品再遍历背包得到组合数(不考虑顺序)
先遍历背包后遍历物品得到排列数

确定dp数组以及下标的含义
dp[j]:凑成总金额j的货币组合数为dp[j]

确定递推公式:
dp[j] 就是所有的dp[j - coins[i]](考虑coins[i]的情况)相加。

递推公式:dp[j] += dp[j - coins[i]];

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

377. 组合总和 Ⅳ

LeetCode题目:377. 组合总和 Ⅳ
代码随想录:377. 组合总和 Ⅳ
在这里插入图片描述

跟上面的区别:强调顺序, 因此先遍历背包,后遍历物品

class Solution {
public:
    int combinationSum4(vector<int>& nums, int target) {
        vector<int> dp(target + 1, 0);
        dp[0] = 1;
        for (int i = 0; i <= target; 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[target];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1116733.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Win10系统按 Win+L 键不能锁屏的问题

一、问题现象&#xff1a; 1、使用”WinL“快捷键无效&#xff1b; 2、系统设置 》电源与睡眠 》其他电源设置 》选择电源按钮的功能中&#xff0c;锁定选项未选中且不可选&#xff0c;且点击“更改当前不可用的设置”后仍然不可选。 3、用户操作选项中无”锁定“按钮&#…

通过TDE透明加密实现服务器防勒索 安当加密

安当TDE透明加密技术主要应用于对数据库中的数据执行实时加解密的应用场景&#xff0c;特别是在对数据加密有较高要求&#xff0c;以及希望加密后数据库性能影响几乎可以忽略的场景中。 安当TDE透明加密技术的防勒索应用场景可以通过以下步骤进行介绍&#xff1a; 数据保护&am…

淘宝商品详情API接口(标题|主图|SKU|价格|销量|库存..)

一、应用场景 淘宝商品详情接口的应用场景非常广泛&#xff0c;以下是其中几个例子&#xff1a; 商家用于展示商品信息&#xff1a;淘宝详情接口可以被用于商家的自主店铺或第三方电商平台上&#xff0c;方便展示商品详细信息。 商品价格比对&#xff1a;淘宝详情接口可以用于…

编程教室本周视频更新

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; 以下是近期制作的一些编程教学视频&#xff0c;欢迎观看、点赞、收藏、转发。 0.10.2竟然不等于0.3?! Python中的小数比较是否相等时的一个…

Ruo-Yi前后端分离相关笔记

1.前提条件和基础 Spring Boot Vue 环境要求&#xff1a;Jdk1.8以上版本、MySql数据库、Redis、Maven、Vue 2.使用若依 官网地址&#xff1a;RuoYi-Vue: &#x1f389; 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分…

获得Pareto前沿的方法有什么?NSGA-Ⅱ怎么获得Pareto非支配解集 + 支配解集?怎么获得Pareto前沿?/非支配解集代码实现

获得Pareto前沿的方法有什么&#xff1f; 获得Pareto前沿的方法有很多&#xff0c;下面列举了一些常用的方法&#xff1a; 权重法&#xff08;Weighted Sum Method&#xff09;&#xff1a;为每个目标函数分配一个权重&#xff0c;并将多目标优化问题转化为单目标优化问题。通…

订单30分钟自动关闭的五种解决方案

1 前言 在开发中&#xff0c;往往会遇到一些关于延时任务的需求。例如 生成订单30分钟未支付&#xff0c;则自动取消生成订单60秒后,给用户发短信 对上述的任务&#xff0c;我们给一个专业的名字来形容&#xff0c;那就是延时任务 。那么这里就会产生一个问题&#xff0c;这…

ElementPlus表格中的背景透明

ElementPlus表格中的背景透明 最近写大屏&#xff0c;用到elementplus中的el-table&#xff0c;为了让显示效果好看一点&#xff0c;需要把表格的白色背景调整为透明&#xff0c;与整个背景融为一体。可以参考的资料非常少&#xff0c;大部分都是ElmentUI的方法&#xff0c;在…

摆动序列【贪心4】

题目 分析 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {if(nums.size() < 2) return nums.size();int ret 0,left 0,right 0;for(int i 0;i < nums.size()-1;i){right nums[i1] - nums[i];if(right 0) continue;if(left …

Python数据分析实战-使用replace方法模糊匹配替换某列的值(附源码和实现效果)

实现功能 Python数据分析实战-使用replace方法模糊匹配替换某列的值 实现代码 import pandas as pd import re# 创建一个示例DataFrame data {A: [apple, banana, pineapple, orange, grape]} df pd.DataFrame(data)# 打印替换前的DataFrame print("替换前的DataFram…

5年经验之谈 —— 接口测试主要测哪些方面?

当今互联网时代&#xff0c;接口测试已经成为软件测试的一个重要组成部分。接口测试是指对系统各个接口进行验证&#xff0c;确保接口的正确性、稳定性和安全性。接口测试是软件开发过程中不可缺少的环节&#xff0c;它旨在确保接口能够正常工作&#xff0c;并且满足所需要的规…

OpenSSL 密码库实现证书签发流程详解

目录 0. 基础理论openssl简介对称加密和非对称加密生成证书流程原理CA签发流程openssl基础操作 1. 生成证书的步骤与原理2. 标准的CA签发流程2.1 创建私钥&#xff08;.key)2.2 基于私钥创建证书签名请求&#xff08;.csr&#xff09;2.3 &#xff08;可选&#xff09;直接同时…

三角形绘制

图形渲染管线的每个阶段的抽象展示 蓝色部分代表的是我们可以注入自定义的着色器的部分。现代OpenGL中&#xff0c;我们必须定义至少一个顶点着色器和一个片段着色器&#xff08;因为GPU中没有默认的顶点/片段着色器&#xff09;。 顶点输入 OpenGL是一个3D图形库&#xff0c…

智能化档案管理系统,利用超高频RFID技术提升档案管理效能

随着机关事业单位的发展&#xff0c;各种信息档案材料的数量不断增加&#xff0c;档案的类型也越来越多样化&#xff0c;传统的纸质储存方式已经无法满足现实需求。传统的档案管理方式存在一些问题&#xff0c;例如手工制作管理方法效率低下、档案储放顺序容易打乱、档案审查和…

ArmSoM-W3之RK3588硬编解码MPP环境配置

1. 简介 瑞芯微提供的媒体处理软件平台&#xff08;Media Process Platform&#xff0c;简称 MPP&#xff09;是适用于瑞芯微芯片系列的 通用媒体处理软件平台。该平台对应用软件屏蔽了芯片相关的复杂底层处理&#xff0c;其目的是为了屏蔽不 同芯片的差异&#xff0c;为使用者…

动态规划:13目标和

动态规划&#xff1a;13目标和 题目&#xff1a;494. 目标和 如何转化为01背包问题呢。 假设加法的总和为x&#xff0c;那么减法对应的总和就是sum - x。 所以我们要求的是 x - (sum - x) target x (target sum) / 2 此时问题就转化为&#xff0c;装满容量为x的背包&…

KF-GINS源码阅读(下)

文章目录 七、捷联惯导更新&#xff1a;insPropagation()1、insPropagation()&#xff1a;捷联惯导递推2、imuCompensate()&#xff1a;IMU数据误差补偿3、insMech()&#xff1a;IMU 状态更新&#xff08;机械编排&#xff09;4、velUpdate()&#xff1a;速度更新1. 算法2. 代码…

树上问题相关笔记

LCA LCA&#xff0c;即最近公共祖先。 我们用 f ( i , j ) f(i,j) f(i,j) 表示 i i i 的第 2 j 2^j 2j 级父亲&#xff0c;由于 i i i 的第 2 j 2^j 2j 级父亲可以由它的第 2 j − 1 2^{j-1} 2j−1 父亲向上再跳 2 j − 1 2^{j-1} 2j−1 层得到&#xff0c;那么 i i …

系列十四、Redis的集群(一)

一、是什么 1.1、概述 由于数据量过大&#xff0c;单个master-slave模式难以承担&#xff0c;当出现master节点故障的一瞬间&#xff0c;哨兵重新选举新的master节点之前&#xff0c;这一小段时间将会导致Redis服务不可用&#xff0c;因此需要对多个master-slave主从复制集进行…

AD20基本原理图的设计

1、利用先前学习的知识&#xff0c;创建文件名为“51单片机最小系统”的PCB工程文件&#xff0c;并将文件保存在相应的目录下。 2、在工程文件下创建原理图文件&#xff0c;命名为“51单片机最小系统”。 3、点击右边“Properties[ˈprɒpətiz]&#xff08;属性&#xff09;”…