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

news2024/11/18 13:36:38

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.coloradmin.cn/o/1884115.html

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

相关文章

Java--Map集合

Map 映射(map)是存储键和值间关联(即&#xff0c;键值对)的对象。给定一个键&#xff0c;可以找到其值。键和值都是对象。键必须唯一&#xff0c;但是值可以重复。 支持映射的接口 接 口 描 述 Map 将唯一键映射到值 NavigableMap 扩展SortedMap接口&#xff0c;以处理…

构筑政企创业实战技能新生态,赋能实战技能培训

国际数字影像产业园在创业实战技能培养方面具有显著的优势和资源。通过丰富的产业资源、专业的培训体系以及实战机会的提供&#xff0c;创业者可以全面提升自己的创业实战技能&#xff0c;为成功创业打下坚实的基础。 一、国际数字影像产业园在创业实战技能培养方面的优势 1、…

2.1 程序设计语言基础

程序设计语言概述 常见的编程语言 编译和解释 程序设计语言的基本成分 数据成分、运算成分、控制成分、传输成分 函数 传值调用、传址调用 编译程序基本原理

ros1仿真导航机器人 navigation

仅为学习记录和一些自己的思考&#xff0c;不具有参考意义。 1navigation导航框架 2导航设置过程 &#xff08;1&#xff09;启动仿真环境 roslaunch why_simulation why_robocup.launch &#xff08;2&#xff09;启动move_base导航、amcl定位 roslaunch why_simulation nav…

平凉擀面皮:西北风味的代表

平凉擀面皮是一道具有地方特色的传统美食&#xff0c;具有以下特点&#xff1a; 历史悠久&#xff1a;擀面皮自唐代冷淘面演变而来&#xff0c;历史悠久。选料精良&#xff1a;采用冬小麦精粉为原料&#xff0c;制作过程中不添加任何食品添加剂。口感独特&#xff1a;口感筋道…

筑算网基石 创数智未来|锐捷网络闪耀2024 MWC上海

2024年6月26日至28日&#xff0c;全球科技界瞩目的GSMA世界移动大会&#xff08;MWC 上海&#xff09;在上海新国际博览中心&#xff08;SNIEC&#xff09;盛大召开。作为行业领先的网络解决方案提供商&#xff0c;锐捷网络以“筑算网基石 创数智未来”为主题&#xff0c;带来了…

asp.net的承载环境的配置与应用

[S1513]基于环境变量的配置初始化 应用启动的时候会将当前的环境变量作为配置源来创建承载最初配置数据的IConfiguration对象&#xff0c;但它只会选择名称以“ASPNETCORE_”为前缀的环境变量&#xff08;通过静态类型Host的CreateDefaultBuilder方法创建的HostBuilder默认选择…

【笔记】记录一次全新的Java项目部署过程

记录一次全新的Java项目部署过程 环境&#xff1a;CentOS7 一、初始环境准备 yum install wget -y yum install vim -y yum install net-tools -y mkdir /data mkdir /data/html mkdir /data/backend一、安装JDK 17 安装JDK17 # 下载rpm wget https://download.oracle.com…

科普文:一文搞懂jvm(一)jvm概叙

概叙 因篇幅限制&#xff0c;这里将分为多篇文章来讲解。 为什么要学习jvm&#xff1f; 1.这是3年的java程序员必备技能。 2.理解“跨平台”、熟悉jvm组织结构、类的加载、双亲委派、对象在jvm中的生命周期、STD。 3.最终目的只有一个&#xff1a;用jdk提供的工具分析排查解决…

一篇带你了解ScheduledExecutorService的用法和适用场景

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、ScheduledExecutorService的作用二、ScheduledExecutorService的使用2.1 常用方法2.2 如何关闭释放资源 三、最后 开篇说明 …

SAPUI5基础知识10 - i18与国际化

1. 背景 i18n 是 “internationalization” 的缩写&#xff0c;其中的 18 是 “internationalization” 这个单词中间的字符数。i18n 是一种让应用程序支持多种语言的方法&#xff0c;也就是我们通常所说的国际化。 在SAPUI5中&#xff0c;i18n主要通过使用资源模型&#xff…

基于Java平价平价汽车租赁系统设计和实现(源码+LW+部署讲解)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

一、课程介绍,基础—环境安装、判断、循环语句等(爬虫及数据可视化)

一、课程介绍&#xff0c;基础—环境安装、判断、循环语句等&#xff08;爬虫及数据可视化&#xff09; 1. 课程介绍1.1 相关内容1.2 学习目标1.3 学习内容安排 2. python2.1 环境配置2.2 标识符和关键字2.3 运算符2.4 判断语句2.5 循环语句 1. 课程介绍 1.1 相关内容 10天的…

一文了解IP地址冲突的起因与解决方案

IP 地址冲突是困扰网络管理员影响网络的正常运行的常见因素。深入理解并有效解决 IP 地址冲突故障对于维护网络的高效稳定运行具有重要意义。 一、IP 地址冲突的原因 &#xff08;一&#xff09;人为配置错误 网络用户在手动配置 IP 地址时&#xff0c;对网络配置了解不多用户…

HarmonyOS开发探索:父子组件手势绑定问题处理

场景一&#xff1a;父子组件同时绑定手势的冲突处理 效果图 方案 在默认情况下&#xff0c;手势事件为非冒泡事件&#xff0c;当父子组件绑定相同的手势时&#xff0c;父子组件绑定的手势事件会发生竞争&#xff0c;最多只有一个组件的手势事件能够获得响应&#xff0c;默认子…

数据结构笔记第3篇:双向链表

1、双向链表的结构 注意&#xff1a;这里的 "带头" 跟前面我们说的 "头结点" 是两个概念&#xff0c;实际前面的在单链表阶段称呼不严谨&#xff0c;但是为了同学们更好的理解就直接称为单链表的头结点。 带头链表里的头结点&#xff0c;实际为 "哨兵…

# 职场生活之道:善于团结

在职场这个大舞台上&#xff0c;每个人都是演员&#xff0c;也是观众。要想在这个舞台上站稳脚跟&#xff0c;除了专业技能&#xff0c;更要学会如何与人相处&#xff0c;如何团结他人。团结&#xff0c;是职场生存的重要法则之一。 1. 主动团结&#xff1a;多一个朋友&#x…

UE5(c++)开发日志(3):将前面写的输出日志的方法进行封装

Public下新增一个c类&#xff1a; 选择无属性&#xff0c;因为不需要添加任何东西进去, 也不需要借助里面任何东西。 创建一个命名空间Debug&#xff0c;可以在命名空间内写一点静态方法 &#xff1a; namespace Debug{} static void Print(const FString& message, con…

试用笔记之-汇通汉诺塔-益智游戏

首先下载汇通汉诺塔&#xff1a; http://www.htsoft.com.cn/download/HanoiTower.rar 汇通汉诺塔游戏规则:把X轴的圈圈都移到Z轴过关。 还可以选择自动游戏哦&#xff0c;看看AI机器人玩汇通汉诺塔

前程无忧滑块

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 前言(lianxi …