代码随想录算法训练营第40天| 518. 零钱兑换 II、 377. 组合总和 Ⅳ、70. 爬楼梯 (进阶)

518. 零钱兑换 II

在这里插入图片描述

题目链接:518. 零钱兑换 II
文档讲解:代码随想录
状态:不会

思路:
和494.目标和类似,这题属于组合问题,当我们有一个硬币coin时,对于每个金额j,通过添加这个硬币,我们可以把凑成金额j-coin的所有方法数加到凑成金额j的方法数中。这是因为每一种凑成 j-coin 的方法,加上硬币coin,都变成了一种凑成j的方法。

注意:

  1. dp[j] 就是所有的dp[j - coins[i]](考虑coins[i]的情况)相加。
  2. 要考虑dp[0]=1
  3. j>=coins[i]

题解:

    public int change(int amount, int[] coins) {int[] dp = new int[amount + 1];  // 创建一个长度为 amount + 1 的数组 dp,用于存储每个金额的组合数dp[0] = 1;  // 初始化 dp[0] 为 1,因为组成金额为 0 的唯一方法是使用 0 个硬币for (int coin : coins) {  // 遍历每个硬币// for (int j = 1; j <= amount; j++) {//     if (j >= coin) {//         dp[j] += dp[j - coin];  //     }// }for (int j = coin; j <= amount; j++) {  // 从当前硬币的面值开始遍历到目标金额dp[j] += dp[j - coin];  // 更新 dp[j],将当前硬币加入组合中}}return dp[amount];  // 返回组成目标金额的组合数}

377. 组合总和 Ⅳ

在这里插入图片描述

题目链接:377. 组合总和 Ⅳ
文档讲解:代码随想录
状态:还行

思路:这题属于排列问题,需要先遍历target再遍历nums。

题解:

    public int combinationSum4(int[] nums, int target) {int[] dp = new int[target + 1];dp[0] = 1;for (int j = 1; j <= target; j++) {for (int i = 0; i < nums.length; i++) {if (j >= nums[i]) {dp[j] += dp[j - nums[i]];}}System.out.println(Arrays.toString(dp));}return dp[target];}

70. 爬楼梯 (进阶)

在这里插入图片描述

题目链接: 70. 爬楼梯 (进阶)
文档讲解:代码随想录
状态:还不熟练

思路:其实就是排列问题,但是要注意步数不能超过要爬的台阶数

题解:

    public void climb() {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int m = scanner.nextInt();int[] dp = new int[n + 1];dp[0] = 1;for (int i = 1; i <= n; i++) {for (int j = 0; j <= m; j++) {if (j <= i) {//表示步数不能超过要爬的台阶数dp[i] += dp[i - j];}}
//            System.out.println(Arrays.toString(dp));}System.out.println(dp[n]);}

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

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

相关文章

从零学习python打卡笔记 第一天

小学生都开始学python了&#xff0c;你还有什么资格不学&#xff1f; 打卡笔记的python版本是3.12.4 一、python能干什么工作&#xff1f; web全栈工程师、大数据分析工程师、爬虫工程师、人工智能工程师、游戏开发工程师、自动化测试工程师、搜索引擎工程师、自动化运维工程师…

RSA加密算法工具类

这里写自定义目录标题 1. RSA加密算法介绍加密和签名**划重点&#xff1a;签名的作用不是防泄密&#xff0c;而是防篡改****对信件内容进行加密****对信息内容追加签名** 为什么在使用非对称加密算法&#xff08;如 RSA&#xff09;时&#xff0c;正确的使用方法是公钥加密&…

使用Redisson实现分布式锁详解

摘要 在分布式系统中&#xff0c;保证多个进程或线程对共享资源的互斥访问是非常重要的。本文将介绍如何使用Redisson库来实现分布式锁&#xff0c;以及它的优势和使用场景。 1. 分布式锁的基本概念 在分布式系统中&#xff0c;由于多个节点可能同时访问同一个资源&#xff…

python 的全局列表通过append到别的列表,被append的列表修改元素的值,原来列表元素也跟着改变。

问题&#xff1a; qq [[4],[8]] def test(aa):bb []bb.append(aa[0])bb[0][0] - 2 test(qq) print(qq) [[2],[8]]原因&#xff1a; append 是将存储位置赋值给列表&#xff0c;列表改变意味着原来的列表也要改变。 append() 方法用于在列表末尾添加新的对象。 语法 append(…

插值查找 python

插值查找&#xff0c;也被称为插值搜索&#xff0c;是一种在有序数组中查找某一特定元素的搜索算法。它是对二分查找的一种改进&#xff0c;通过计算元素在数组中的近似位置来减少比较次数&#xff0c;从而提高搜索效率。 原理&#xff1a; 插值查找的基本思想是&#xff0c;根…

Scala的宝藏库:探索常用的第三方库及其应用

Scala的宝藏库&#xff1a;探索常用的第三方库及其应用 Scala&#xff0c;作为一种多范式的编程语言&#xff0c;不仅拥有强大的内置功能&#xff0c;还得益于其丰富的第三方库生态系统。这些库扩展了Scala的能力&#xff0c;帮助开发者在不同领域构建高效、可维护的应用程序。…

平安养老险陕西分公司参加2024上半年省级单位驻富平帮扶团联席会

6月28日&#xff0c;平安养老险陕西分公司工会副主席武媛携驻村工作队赴富平县庄里镇永安村参加2024上半年度省级单位驻富平帮扶团联席会议。 会议由省委金融办副主任、省委金融工委委员李嘉辉及省委金融办选派挂职干部、富平县副县长席玮共同主持。 会上&#xff0c;席玮县长带…

【vue avue】初始化代码 和 增删改查

这里是目录! 一、初始化页面1. 有 avue ,js 补 option2.显隐列二、弹窗1. 新增 - 表单1.1 必填1.2 清除 rules 提示2.编辑三、启用、禁用、删除1.1 菜单左上角1.2 操作栏删除一、初始化页面 Code<template> <basic-container><avue-crud:table-loading="…

Java类的加载过程

加载&#xff08;Loading&#xff09;&#xff1a; 这是类加载过程的第一个阶段。在这个阶段&#xff0c;Java 虚拟机&#xff08;JVM&#xff09;找到并读取类的二进制数据&#xff0c;通常是 .class 文件。这些数据从文件系统、网络、zip 包、jar 文件或其他形式的二进制数据…

吴恩达机器学习 第三课 week2 推荐算法(下)

目录 01 学习目标 02 基于内容的过滤算法 03 实现“电影推荐系统” 3.1 问题描述 3.2 算法实现 04 大项目&#xff08;数据很大&#xff09;的推荐方法※ 4.1 方法原理 4.2 实施示例 05 总结 01 学习目标 &#xff08;1&#xff09;理解基于内容的过滤算法&#xff08…

嵌入式问题分析思路

BUG解决总体思路: 1.1 定位bug范围及性质 要有效解决问题&#xff0c;首先要缩小范围&#xff0c;集中关注最近的代码变化。这有助于迅速定位可能引入问题的部分&#xff0c;避免无谓的时间浪费。检查最近的代码提交记录和修改日志&#xff0c;找出可能影响现有功能的变更。然…

Java 位运算详解

位运算是一种直接在二进制位上进行操作的方式。位运算符包括按位与 (&)、按位或 (|)、按位异或 (^)、按位非 (~)、左移 (<<)、右移 (>>) 和无符号右移 (>>>)。这些操作符用于操作整型数据类型&#xff0c;如 int 和 long。 一、按位与 (&) 按位…

如果使用Outlook 2024出现问题

大家好&#xff0c;才是真的好。 很多企业使用Domino服务器当作POP/IMAP邮箱服务器来使用&#xff0c;虽然这不能发挥Domino最佳效能&#xff0c;但也不失为一种简单用法。 另一种企业则使用Domino仅作为应用app平台&#xff0c;邮箱早已迁移至O365或其他平台&#xff0c;他们…

报销又乱又慢,财务如何解决报销困局?

费用报销是企业频繁发生的业务场景&#xff0c;不同的企业在费用报销的流程、标准、制度、管理上各有不同。作为一些公司日常运作中的薄弱环节&#xff0c;费用报销环节存在着较大的内控风险&#xff0c;如&#xff1a;费用报销滞后&#xff0c;造成会计信息的失真&#xff0c;…

【YOLOv5/v7改进系列】更换损失函数为CIOU、GIOU、SIOU、DIOU、EIOU、WIOUv1/v2/v3、Focal C/G/S/D/EIOU等

一、导言 在目标检测任务中&#xff0c;损失函数的主要作用是衡量模型预测的边界框&#xff08;bounding boxes&#xff09;与真实边界框之间的匹配程度&#xff0c;并指导模型学习如何更精确地定位和分类目标。损失函数通常由两部分构成&#xff1a;分类损失&#xff08;用于…

我的世界服务器-高版本服务器-MC服务器-生存服务器-RPG服务器-幻世星辰

生存为主&#xff0c;RPG乐趣为辅&#xff0c;重视每位玩家的建议&#xff0c;一起打造心目中的服务器&#xff0c;与小伙伴一起探险我的世界&#xff01; 服务器版本: 1.18.2 ~ 1.20.4 Q群&#xff1a; 338238381 服务器官网: 星辰毛毛雨-Minecraft高版本生存服务器我的世界…

springboot是否可以代替spring

Spring Boot不能直接代替Spring&#xff0c;但它是Spring框架的一个扩展和增强&#xff0c;提供了更加便捷和高效的开发体验。以下是关于Spring Boot和Spring关系的详细解释&#xff1a; Spring框架&#xff1a; Spring是一个广泛应用的开源Java框架&#xff0c;提供了一系列模…

EDI是什么?与ERP有何关系

EDI的发展过程 电子数据交换&#xff08;Electronic Data Interchange&#xff0c;EDI&#xff09;是一种通过电子方式传输商业文件的技术。EDI的历史可以追溯到20世纪60年代&#xff0c;当时企业开始使用计算机进行数据处理。最早的EDI系统是为解决大型企业间的信息交换问题而…

nccl 04 nvidia 官方小程序

1&#xff0c;代码重新编辑 为了地毯式地检查结果的正确性&#xff0c;这里修改了代码 主要步骤为 step1: data_p指向的空间中&#xff0c;分别生成随机数&#xff1b; step2: 分别拷贝到gpu的sendbuff的显存中&#xff1b; step3: 通过nccl_all_reduce sum&#xff1b;…