代码随想录算法训练营第四十四天| 完全背包,518. 零钱兑换 II ,377. 组合总和 Ⅳ

题目与题解

完全背包

题目链接:完全背包

代码随想录题解:​​​​​​​完全背包

视频讲解:带你学透完全背包问题! 和 01背包有什么差别?遍历顺序上有什么讲究?_哔哩哔哩_bilibili

解题思路:

        看答案

看完代码随想录之后的想法 

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

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

        01背包内嵌的循环是从大到小遍历,为了保证每个物品仅被添加一次。

        而完全背包的物品是可以添加多次的,所以要从小到大去遍历。

import java.util.*;public class ID52Kama {public static void main (String[] args) {Scanner scanner = new Scanner(System.in);int N = scanner.nextInt();int V = scanner.nextInt();int[] w = new int[N];int[] v = new int[N];for (int i = 0; i < N; i++) {w[i] = scanner.nextInt();v[i] = scanner.nextInt();}int[] dp = new int[V+1];for (int i = 0; i < N; i++) {for (int j = w[i]; j <= V; j++) {dp[j] = Math.max(dp[j], dp[j - w[i]]+v[i]);}}System.out.println(dp[V]);}
}

遇到的困难

        不懂+1

518. 零钱兑换 II

题目链接:​​​​​​​518. 零钱兑换 II

代码随想录题解:​​​​​​​518. 零钱兑换 II

视频讲解:动态规划之完全背包,装满背包有多少种方法?组合与排列有讲究!| LeetCode:518.零钱兑换II_哔哩哔哩_bilibili

解题思路:

        求有多少种方法的题,一维数组初始化dp[0]=1,递推公式为dp[j] += dp[j-coins[i]]即可,其余根完全背包一样,最后返回dp[amount]

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 - coins[i]];}}return dp[amount];}
}

看完代码随想录之后的想法 

        虽然看不懂,但是我很会照猫画虎。

遇到的困难

        。。。

377. 组合总和 Ⅳ

题目链接:​​​​​​​377. 组合总和 Ⅳ

代码随想录题解:​​​​​​​377. 组合总和 Ⅳ

视频讲解:动态规划之完全背包,装满背包有几种方法?求排列数?| LeetCode:377.组合总和IV_哔哩哔哩_bilibili

解题思路:

        虽然这道题叫组合总和,但其涉及到顺序不一样就是不一样的结果,本质上是排列问题。不会。

看完代码随想录之后的想法 

        如果求组合数就是外层for循环遍历物品,内层for遍历背包

        如果求排列数就是外层for遍历背包,内层for循环遍历物品

class Solution {public int combinationSum4(int[] nums, int target) {int[] dp = new int[target+1];dp[0] = 1;for (int i = 0; i <= target; i++) { // 遍历背包for (int j = 0; j < nums.length; j++) { // 遍历物品if (i - nums[j] >= 0 && dp[i] < Integer.MAX_VALUE - dp[i - nums[j]]) {dp[i] += dp[i - nums[j]];}}}return dp[target];}
}

遇到的困难

        不懂

今日收获

        继续懵逼

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

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

相关文章

云轴科技ZStack助力上银基金余额宝TA系统快速上线

上银基金管理有限公司&#xff08;上银基金&#xff09;通过ZStack Cloud云平台ZStack分布式存储融合架构构建关键余额宝TA系统&#xff08;开放式基金登记过户系统 &#xff09;实现业务快速如期上线。上银基金不仅可以借助ZStack云平台实现VMware纳管迁移&#xff0c;支持双机…

[C++11] 基础类型扩展解读(long long、char16_t char32_t)

说明&#xff1a; long long是一种基本数据类型&#xff0c;它通常是一种至少64位的有符号整数类型。在C中&#xff0c;long long类型能够存储的数值范围远远超过int或long类型&#xff0c;这使得它非常适合存储非常大的整数。 char16_t和char32_t是C11标准引入的两种新的数据…

【华为OD机试】高效货运【C卷|200分】

【华为OD机试】-真题 !!点这里&#xff01;&#xff01; 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 老李是货运公司承运人&#xff0c;老李的货车额定载货重量为 wt。 现有两种货物&#xff1a; 货物 A 单件重量为 wa&#xff0c;单件运费利润为 pa 货物 B 单件重量为…

Spring学习(三)——AOP

AOP是在不改原有代码的前提下对其进行增强 AOP(Aspect Oriented Programming)面向切面编程&#xff0c;在不惊动原始设计的基础上为其进行功能增强&#xff0c;前面咱们有技术就可以实现这样的功能即代理模式。Java设计模式——代理模式-CSDN博客 基础概念 连接点&#xff08…

2024经常用且免费的10个网盘对比,看看哪个比较好用!

网盘在我们的工作和学习中经常会用到&#xff0c;也是存储资料的必备工具&#xff0c;有了它&#xff0c;我们就不用走到哪都带着移动硬盘了&#xff0c;而目前市场上的主流网盘还有数十款&#xff0c;其中有免费的也有付费的&#xff0c;各家不一&#xff0c;今天小编就来为您…

Linux 安装 GHCup,GHC, cabal 以及通过 cabal 安装 pandoc

文章目录 安装 GHCUP1. 指定国内镜像2. 执行安装3. 安装检查 安装 pandoc1. 初始化包列表2. 安装命令3. Trouble ShootingFailure to build cryptonMemory Exhausted 内存不足 安装 GHCUP 1. 指定国内镜像 在 GHCup 官方网站 上面提供了安装方式&#xff1a; curl --proto h…

[Android]模拟器登录Google Play失败

问题&#xff1a; 模拟器登录Google Play失败&#xff0c;提示couldnt sign in there was a problem communicating with google servers. try again later. 原因&#xff1a; 原因是模拟器没有连接到互联网&#xff0c;打开模拟器中Google浏览器进行搜索一样不行。 解决&am…

移动硬盘(PSSD)中文件占用空间远大于文件大小

定义 文件的大小&#xff1a;文件内容实际具有的字节数&#xff0c;它以Byte为衡量单位&#xff0c;只要文件内容和格式不发生变化&#xff0c;文件大小就不会发生变化。 文件占用空间&#xff1a;文件在磁盘上的所占空间&#xff0c;它最小的计量单位是“簇(Cluster)”。 为…

C语言基础--数组和指针

数组和指针 数组与指针的关系与运用 在C语言中&#xff0c;数组和指针是两个重要的概念&#xff0c;它们之间有着密切的联系。本文将介绍如何通过指针操作数组元素&#xff0c;探讨指针数组的概念以及如何将数组名作为函数参数&#xff0c;帮助读者更好地理解和运用数组与指针…

MySQL高负载排查方法最佳实践(15/16)

高负载排查方法 CPU占用率过高问题排查 使用mpstat查看cpu使用情况。 # mpstat 是一款 CPU 性能指标实时展示工具 # 能展示每个 CPU 核的资源视情况&#xff0c;同时还能将资源使用情况进行汇总展示 # 如果CPU0 的 %idle 已经为 0 &#xff0c;说明此核已经非常繁忙# 打印所…

Istio介绍

1.什么是Istio Istio是一个开源的服务网格&#xff08;Service Mesh&#xff09;框架&#xff0c;它提供了一种简单的方式来为部署在Kubernetes等容器编排平台上的微服务应用添加网络功能。Istio的核心功能包括&#xff1a; 服务治理&#xff1a;Istio能够帮助管理服务之间的…

微服务之CircuitBreaker断路器

一、概述 1.1背景 在一个分布式系统中&#xff0c;每个服务都可能会调用其它的服务器&#xff0c;服务之间是相互调用相互依赖。假如微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其他的微服务。这就是构成所谓“扇出”。 如果扇出的链路上某个微服务的调…

状态压缩DP题单

P1433 吃奶酪&#xff08;最短路&#xff09; dp(i, s) 表示从 i 出发经过的点的记录为 s 的路线距离最小值 #include<bits/stdc.h> #define int long long using namespace std; const int N 20; signed main() { int n; cin >> n;vector<double>x(n 1),…

C++项目 -- 负载均衡OJ(三)online_judge

C项目 – 负载均衡OJ&#xff08;三&#xff09;online_judge 文章目录 C项目 -- 负载均衡OJ&#xff08;三&#xff09;online_judge一、基于MVC结构的oj服务设计1.结构与功能 二、oj_model.hpp1.建立文件版题库2.文件版题库的服务模块3. MySQL版题库3.1.创建名为oj_client的用…

关于提高自己技术能力的几点思考

关于提高自己技术能力的几点思考 回想自己进步快的时候&#xff0c;一个是读书时理解了书中逻辑&#xff0c;然后代入到工作能够解决问题&#xff0c; 一个是解决了一个个个新问题的时候总结出经验的时候。现在想想这两种方式确实是符合认知逻辑的&#xff0c;了解到知识&…

【uniapp】引入uni-ui组件库

&#xff08;1&#xff09;新建项目的时候选择 uni-ui项目 &#xff08;2&#xff09;已经创建好的项目去官网单独安装 跳转单独安装组件 https://uniapp.dcloud.net.cn/component/uniui/quickstart.html#%E9%80%9A%E8%BF%87-uni-modules-%E5%8D%95%E7%8B%AC%E5%AE%89%E8%A3%8…

【前端】修改iframe里面的pdf的样式

iframe是HTML中的一种元素&#xff0c;用于在网页中嵌入其他网页或文档。通过使用iframe&#xff0c;你可以在一个网页中显示另一个网页的内容。然而&#xff0c;由于安全性和隐私方面的考虑&#xff0c;通过CSS样式直接修改iframe中的内容是不被允许的。 但是&#xff0c;你可…

202462读书笔记|《一世珍藏的诗歌200首》——你曾经羞赧地向我问起, 是谁最早在此留下足印

202462读书笔记|《一世珍藏的诗歌200首》——你曾经羞赧地向我问起&#xff0c; 是谁最早在此留下足印 《一世珍藏的诗歌200首》作者金宏宇&#xff0c;很多美好的诗&#xff0c;有徐志摩&#xff0c;戴望舒&#xff0c;林徽因&#xff0c;舒婷等的诗精选&#xff0c;很值得一读…

动态库和静态库

文章目录 一、 静态库二、动态库 一、 静态库 静态库&#xff08;.a&#xff09;&#xff1a;程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库&#xff0c;因为他已经在你字节写的程序中。 编译静态库 将所有的.h文件拷贝到lib/include中…

面试题:JVM内存泄露服务器会有什么表现?怎么处理?

来源 阿里-技术-1面 我的回答 刚开始内存泄露少的时候&#xff0c;没什么影响&#xff0c;到后面&#xff0c;会频繁的进行Full GC。面试官&#xff1a;那CPU的表现是怎样的呢&#xff1f; 我&#xff1a;CPU使用率会很高&#xff0c;因为现在的垃圾回收器一般是使用的并行回…