LeeCode Practice Journal | Day37_DP05

embedded/2024/12/23 9:20:36/

完全背包

有N件物品和一个容量为W的背包,第 i 件物品的重量是weight[ i ],价值为value[ i ],每件物品都有无限个,求解使用背包物品价值总和达到最大的装包方案  

二维
static int CompleteKnapsack2D(int[] weights, int[] values, int W)
{int n = weights.Length;int[,] dp = new int[n + 1, W + 1];// 遍历每个物品for (int i = 1; i <= n; i++){for (int j = 0; j <= W; j++){// 如果不使用当前物品dp[i, j] = dp[i - 1, j];// 如果使用当前物品if (j >= weights[i - 1]){dp[i, j] = Math.Max(dp[i, j], dp[i, j - weights[i - 1]] + values[i - 1]);}}}return dp[n, W];
}
一维
static int CompleteKnapsack1D(int[] weights, int[] values, int W)
{int n = weights.Length;int[] dp = new int[W + 1];// 遍历所有的物品for (int i = 0; i < n; i++){// 遍历背包容量从小到大for (int j = weights[i]; j <= W; j++){// 更新 dp 数组dp[j] = Math.Max(dp[j], dp[j - weights[i]] + values[i]);}}return dp[W];
}
summary

518. 零钱兑换Ⅱ

题目:518. 零钱兑换 II - 力扣(LeetCode)
题解:代码随想录 (programmercarl.com)
比较简单

solution
public class Solution {public int Change(int amount, int[] coins) {int[] dp = new int[amount + 1];dp[0] = 1;for(int i = 0; i < coins.Length; i ++){for(int j = coins[i]; j <= amount; j ++){dp[j] = dp[j] + dp[j - coins[i]];}}return dp[amount];}
}
summary

注意dp[0]需要初始化为1

377. 组合总和Ⅳ

题目:377. 组合总和 Ⅳ - 力扣(LeetCode)
题解:代码随想录 (programmercarl.com)
想不通,明天再想

solution
public class Solution {public int CombinationSum4(int[] nums, int target) {// 创建 dp 数组,大小为 target + 1int[] dp = new int[target + 1];dp[0] = 1; // 组成 0 的组合数量为 1(空组合)// 遍历所有目标数值for (int i = 1; i <= target; i++){// 遍历所有候选数字foreach (int num in nums){if (i >= num){// 更新 dp[i] 的值dp[i] += dp[i - num];}}}// 返回组成 target 的组合数量return dp[target];}
}
summary

http://www.ppmy.cn/embedded/93380.html

相关文章

django项目中初始化数据库数据时的离线脚本

django初始化数据库数据时的离线脚本 """ 要想通过ORM操作数据库&#xff0c;必须要先启动django pycharm会自动scripts文件夹添加的sys.path&#xff0c;但是在服务器部署时自己手动添加&#xff0c; """import os import sysimport django# 部…

Redis的基础使用

Redis介绍 特点及优点 1、开源的&#xff0c;使用C编写&#xff0c;基于内存且支持持久化 2、高性能的Key-Value的NoSQL数据库 3、支持数据类型丰富&#xff0c;字符串strings&#xff0c;散列hashes&#xff0c;列表lists&#xff0c;集合sets&#xff0c;有序集合sorted se…

数据分析及应用:快手直播间人员在线分析

目录 0 需求描述 1、进入直播间的高峰期为?(以进入用户数衡量) 2、晚上 11 点,哪个直播间的进入人数最多? 3、20:00-23:00,娱乐类、搞笑类,进入人数最多直播间分别是? 4、娱乐类、搞笑类,人均在线时长(退出时间-进入时间)最长的直播间分别是? 5、同时在线人数…

ARM 架构硬件新趋势:嵌入式领域的未来

目录 目录 一、ARM 架构概述 二、新趋势一&#xff1a;AI 加速器集成 三、新趋势二&#xff1a;更高效的电源管理 四、新趋势三&#xff1a;安全性增强 五、结语 随着物联网 (IoT) 和边缘计算的发展&#xff0c;ARM 架构在嵌入式系统中的应用越来越广泛。从智能手机到智能…

SpringBoot可以同时处理多少请求?

​ 博客主页: 南来_北往 &#x1f525;系列专栏&#xff1a;Spring Boot实战 前言 前两天面试的时候&#xff0c;面试官问我&#xff1a;一个ip发请求过来&#xff0c;是一个ip对应一个线程吗&#xff1f;我突然愣住了&#xff0c;对于SpringBoot如何处理请求好像从来没仔…

openai command not found (mac)

题意&#xff1a;mac 系统上无法识别 openai 的命令 问题背景&#xff1a; Im trying to follow the fine tuning guide for Openai here. 我正在尝试遵循 OpenAI 的微调指南 I ran: 我运行以下命令 pip install --upgrade openaiWhich install without any errors.…

TeleVis:基于NLP的新冠新闻舆情可视化项目

关联比赛: 疫情数据可视化公益行动 一、项目名称 TeleVis&#xff1a;基于NLP的新冠新闻舆情可视化项目 二、团队信息 团队名称&#xff1a;TeleVis 单 位&#xff1a;金融壹账通大数据研究院 成 员&#xff1a;杨镭、郭凌峰、王天宇、黄北辰、齐婧含 三、项目介绍 政企机构的…

Qt自定义TreeWidget,实现展开折叠按钮在右侧,且一条竖直线上对齐

效果如下&#xff1a; 图片随便找的&#xff0c;可能需要调下样式&#xff0c;代码复制可用&#xff0c;留给有需要的人。 #ifndef CustomTreeWidget_h__ #define CustomTreeWidget_h__#include <QTreeWidget> #include <QPushButton>class CCustomTreeWidget : p…