LeetCode刷题 | 70. 爬楼梯、322. 零钱兑换、279. 完全平方数

news2024/11/18 9:34:04

70. 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

示例 1:

输入:n = 2

输出:2

解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶

示例 2:

输入:n = 3

输出:3

解释:有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶

动归五部曲:

1. dp数组和下标的定义

dp[i]表示有dp[i]种方法到达i阶

2. 递推公式

dp[i] += dp[i - j]

3. 初始化

dp[0] = 1

4. 遍历顺序

将target放在外循环,将nums放在内循环

5. 举例来推导dp数组

class Solution {
    public int climbStairs(int n) {
        int[] dp = new int[n + 1];
        int m = 2;
        dp[0] = 1;

        for (int i = 1; i <= n; i++) { // 遍历背包
            for (int j = 1; j <= m; j++) { //遍历物品
                if (i >= j) dp[i] += dp[i - j];
            }
        }

        return dp[n];
    }
}

322. 零钱兑换

给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。

计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。

你可以认为每种硬币的数量是无限的。

示例 1:

输入:coins = [1, 2, 5], amount = 11

输出:3

解释:11 = 5 + 5 + 1

示例 2:

输入:coins = [2], amount = 3

输出:-1

示例 3:

输入:coins = [1], amount = 0

输出:0

动归五部曲:

1. dp数组和下标的含义

dp[i]表示凑成总金额为i的最少金币个数

2. 递推公式

dp[j] = min(dp[j -coins[i] + 1],dp[j])

3. 初始化

dp[0] = 0

4. 遍历顺序

coins放在外循环,target在内循环

5. 举例推导dp数组

class Solution {
    public int coinChange(int[] coins, int amount) {
        int max = Integer.MAX_VALUE;
        int[] dp = new int[amount + 1];
        for(int j = 0;j < dp.length;j ++){
            dp[j] = max;
        }
        dp[0] = 0;
        for(int i = 0;i < coins.length;i ++){
            for(int j = coins[i];j <= amount;j ++){
                if(dp[j - coins[i]] != max){
                    dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1);
                }
            }
        }
        return dp[amount] == max? -1:dp[amount];
    }
}

279. 完全平方数

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,149 和 16 都是完全平方数,而 3 和 11 不是。

示例 1:

输入:n = 12

输出:3

解释:12 = 4 + 4 + 4

示例 2:

输入:n = 13

输出:2

解释:13 = 4 + 9

动归五部曲:

1. dp数组和下标的含义

dp[j]表示和为j的完全平方数的最少数量为dp[j]

2. 递推公式

dp[j] = min(dp[j - i * i] + 1, dp[j])

3. 初始化

dp[0] = 0

4. 确定遍历顺序

外层遍历背包,内层遍历物品

5. 举例推导dp数组

class Solution {
    public int numSquares(int n) {
        int max = Integer.MAX_VALUE;
        int[] dp = new int[n + 1];
        for(int j = 0;j <= n;j ++){
            dp[j] = max;
        }
        dp[0] = 0;
        for(int j = 1;j <= n;j ++){
            for(int i = 1;i * i <= j;i ++){
                dp[j] = Math.min(dp[j], dp[j - i * i] + 1);
            }
        }
        return dp[n];
    }
}

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

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

相关文章

怎么用云猫转码工具在线转换视频格式

我们平时在剪辑视频的时候&#xff0c;经常需要处理各种各样的视频格式&#xff0c;大家平时可以通过将不同的视频格式进行转换&#xff0c;就可以获得到更多的视频格式类型&#xff0c;那么有什么好用的工具可以快速转换视频格式的么&#xff1f; 推荐使用云猫转码工具在线转…

八大排序算法——(万字图文详解)

本篇文章是我对之前写过的八个排序算法的总结&#xff0c;感兴趣的小伙伴可以去我的八大排序算法专栏浏览&#xff0c;也可以点击下方标题跳转。 提示&#xff1a;本篇博客篇幅较长&#xff0c;建议小伙伴们查看目录&#xff0c;按需浏览 目录 正文 1 直接插入排序 2 希尔…

JAVA关于异常的处理

1.throw和throws public static int score(int math,int chinese) throws Exception {if(math < 0 || chinese < 0){throw new Exception();}return (mathchinese)/2;}从这里看&#xff0c; throw是在方法体中处理异常的&#xff0c;抛出&#xff0c;这个时候&#xff0…

centos7 解决 IP自动变化的问题

进入&#xff1a;cd /etc/sysconfig/network-scripts/ 找到&#xff1a;ircfg-ens33 文件 vi 打开 BOOTPROTO“static” IPADDR192.168.98.130 //设置的本机ip&#xff0c;需和网关在同一网段 192.168.234.xxx NETMASK255.255.255.0 子网掩码 设置好后 :wq systemctl restart…

Linux下Redis 6.2.6安装和部署详细图文步骤

目录 1、下载redis6.2.6安装包2、解压压缩文件3、重命名和移动文件4、redis编译安装1&#xff09;redis编译&#xff0c;执行make命令。2&#xff09;redis安装执行make install命令。 5、redis启动6、设置后台启动redis7、设置redis密码8、设置redis服务远程访问1、防火墙添加…

windows10关闭WPS广告及清理备份与设置升级

1、清理备份 备份开启可以预防断电等情况意外关闭文档&#xff0c;导致内容丢失&#xff0c;建议开启备份 2、WPS广告&#xff0c;恶意已久&#xff0c;不解释 3、路径 C:\Users\UserHostname\AppData\Local\Kingsoft\WPS Office\11.1.0.14309\office6 ksomisc.exe 程序。 …

微信小程序页面跳转的区别

①wx.navigateTo&#xff1a;跳转到新页面&#xff0c;可以返回上一层页面 ②wx.redirectTo&#xff1a;跳转到新页面并且关闭当前页面&#xff0c;不可以返回上一层页面(跳转到指定的非TabBar页面) ③wx.reLaunch&#xff1a;跳转到新页面并且关闭当前所有页面&#xff0c;不可…

怎么保护电脑重要文件夹?

当我们在电脑文件夹中存放重要数据时&#xff0c;为了避免数据泄露&#xff0c;就必须使用相应的方式保护文件夹的数据安全。那么我们该怎么保护电脑重要文件夹呢&#xff1f;下面我们就一起来了解一下吧。 文件夹隐藏 我们在文件夹上单击鼠标右键选择“属性”&#xff0c;随后…

Galaxybase-convert实践:两步实现Neo4j数据迁移

前言 Galaxybase是创邻科技自主研发的国内首款超大规模分布式并行原生图平台产品&#xff0c;拥有优异的数据读写查询性能、强⼤的可视化分析能力、丰富的可编程接口和开箱即用的图算法引擎&#xff0c;是集存储、计算、分析于一体的图数据全⽣命周期⼀站式管理平台&#xff0…

ProtoBuf—2

文章目录 1、字段规则2、消息类型的定义和使用3、enum的使用4、any类型2、oneof类型3、map类型 1、字段规则 消息的字段可以用以下几种规则来修饰&#xff1a; singular&#xff1a;消息中可以包含该字段零次或一次(不超过一次)。proto3语法中&#xff0c;字段默认使用该规则…

【XML技术】web杂谈(3)之深入理解什么是XML、XML的语法详解

涉及知识点 什么是 XML&#xff0c;XML的特征&#xff0c;XML的基本语法及应用&#xff0c;应用程序接口&#xff08;DOM&SAX&#xff09;&#xff0c;XML的文档的显示&#xff0c;深入了解XML技术。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;更多内容可…

马氏距离mahalanobis distance

来看个题 【解】 代码验证 import numpy as np from scipy.spatial.distance import mahalanobis# 定义四个点坐标的数组 points np.array([[0.5, 1.5], [4, 4], [8, 6], [2, 2]])# 计算协方差矩阵 covariance_matrix np.cov(points.T)# 计算马氏距离 mean np.mean(points,…

策略模式Strategy介绍与C++实现

目录 1、策略模式的提出&#xff1a; 2、策略模式定义&#xff1a; 3、策略模式总结&#xff1a; 4、需求描述&#xff1a; 5、普通实现 6、使用策略模式实现 1、策略模式的提出&#xff1a; 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经…

Ubuntu下 NVIDIA Container Runtime 安装与使用

NVIDIA Container Runtime官网 GitHub仓库&#xff1a;Docker 是开发人员采用最广泛的容器技术。借助 NVIDIA Container Runtime&#xff0c;开发人员只需在创建容器期间注册一个新的运行时&#xff0c;即可将 NVIDIA GPU 暴露给容器中的应用程序。用于 Docker 的 NVIDIA Conta…

自然语言处理:任务与应用

文章目录 一、基本任务1.词性标注Part-of-speech (POS) tagging2.命名实体识别Named Entity Recognition (NER)3.共指消解Coreference Resolution4.句法依赖解析Syntactic Dependency Parsing5.中文分词Chinese Word Segmentation 二、常见应用1.文本匹配2. 知识图谱3. 问答系统…

微服务中的负载均衡

如图 有三处需要负载均衡 这里主要讲内部的grpc调用的 负载均衡 图中3的地方 ① 集中式load balance ② 进程内load balance ③独立进程load balance 首选第二种方式

华为MateBook 16 2021款锐龙版R7(CREM-WFD9)(CREM-WFG9)原装出厂Win11系统工厂模式,恢复原厂系统

HUAWEI华为笔记本电脑&#xff0c;MateBook 16 2021款 锐龙版 R7(CREM-WFD9) (CREM-WFG9) 原厂Windows11系统&#xff0c;带F10恢复功能&#xff0c;原装OEM专用系统&#xff0c;恢复出厂状态 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、华为电脑管家等预装程序 …

Java启动项目时,控制台报端口被占用,解决办法

端口占用一般是现在有别的程序正在使用该端口 第一步可以先查出来是哪个程序在占用&#xff1a; netstat -aon | find "8113" //8113为被占用的端口号 此时的结果是这样的&#xff0c;查询出来的为占用此端口程序的PID&#xff08; 25472 &#xff09; 然后根据…

隐式迭代是什么意思?jQuery选择器隐式迭代

在使用jQuery 选择器获取元素后&#xff0c;如果不考虑获取到的元素数量&#xff0c;直接对元素进行操作&#xff0c;则在操作时会发生隐式迭代。隐式迭代是指&#xff0c;当要操作的元素实际有多个时&#xff0c;jQuery 会自动对所有的元素进行操作&#xff0c;示例代码如下。…

Centos 系统中使用 Firefix 播放视频 - VLC播放器的安装

问题&#xff1a; 出于刷视频的需要&#xff0c;需要使用虚拟机&#xff08;Centos7&#xff09;上的 Firefix 来播放视频&#xff0c;经确认安装 flash 的方式是不行的。事实上在 Firefix 播放视频仅需要安装 VLC 播放器就可以了&#xff0c;以下记录安装 VLC 视频播放器的过程…