Day45 动态规划 part07

Day45 动态规划 part07

57. 爬楼梯(卡码网)

我的思路:
和昨天的组合总和题几乎一模一样的代码

解答:

import java.util.*;public class Main {public static void main (String[] args) {Scanner myScanner = new Scanner(System.in);int n = myScanner.nextInt();int m = myScanner.nextInt();int[] steps = new int[m];for(int i = 0; i < m; i++) {steps[i] = i + 1;}BagProblem(steps, n);}public static void BagProblem(int[] steps, int n) {int[] dp = new int[n + 1];dp[0] = 1;for(int i = 0; i < dp.length; i++) {for(int step: steps) {if(i >= step) {dp[i] += dp[i - step];}}}System.out.println(dp[n]);}
}

279.完全平方数

我的思路:
这次的状态转移方程是dp[i] = Math.min(dp[i], dp[i - j *j] + 1),比较自身与dp数组中i - j *j与j *j的组合(该情况的组合数就是dp[i - j *j] + 1)
因为是比最小,初始化dp数组值为无穷大Integer.MAX_VALUE

解答:

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

322. 零钱兑换

我的思路:
和上一题一样,考察组合,数字可以重复使用
状态转移方程模仿可以写出,dp[j] = Math.min(dp[j], dp[j - coins[i]] + 1)
这里为了方便比较(存在无法组合输出-1的情况),比较更小值的时候,没有用Integer.MAX_VALUE,用的amount + 1

解答:

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

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

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

相关文章

【torch-gpu】手动快速安装

cuda11.7就选cu117 python3.8就选cp38 windows就选win 安装torch 进入官网 https://download.pytorch.org/whl/torch/ 搜索 torch-2.0.1cu117-cp38-cp38-win_amd64.whl 安装torchvision 进入官网 https://download.pytorch.org/whl/torchvision/ 搜索 torchvision-0.15.2cu…

树莓派安装Windows搭建网盘和下载机

0 需求分析 在同一个局域网内&#xff0c;同时有多种设备&#xff08;Windows&#xff0c;Linux&#xff0c;Android&#xff09;需要进行大量的数据共享。另外&#xff0c;还时常需要从百度网盘/夸克网盘等网盘下载文件。不难看出&#xff0c;我的需求很简单&#xff0c;就是…

提醒:2024年思维100春季线上比赛今天报名截止,来看官方样题

【温馨提醒】今天是2024年4月6日&#xff0c;是2024年春季思维100活动第一阶段线上比赛报名的截止日期。如果要参赛&#xff0c;请设置好闹钟别错过了报名。更多安排和需要提前了解的关键点可以见我前面写的文章&#xff0c;或者直接联系我获取相关资料。 官方发布的2024年春季…

汽车网络安全管理

汽车网络安全管理 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗你的人和事&#xff0c…

使用阿里云试用Elasticsearch学习:2.4 深入搜索——近似匹配

使用 TF/IDF 的标准全文检索将文档或者文档中的字段作一大袋的词语处理。 match 查询可以告知我们这大袋子中是否包含查询的词条&#xff0c;但却无法告知词语之间的关系。 思考下面这几个句子的不同&#xff1a; Sue ate the alligator.The alligator ate Sue.Sue never goe…

javaweb学习(day11-监听器Listener过滤器Filter)

一、监听器Listener 1 Listener介绍 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是&#xff1a;Servlet 程 序、Listener 监听器、Filter 过滤器 Listener 是 JavaEE 的规范&#xff0c;就是接口 监听器的作用是&#xff0c;监听某种变化(一般就是对…

Java零基础入门-递归

一、概述 上一期&#xff0c;我们是具体学习了File类的一些概念基础知识点&#xff0c;以及对于该类的常用方法进行了一个全量举例演示&#xff0c;这也是考虑到有的小伙伴在阅读的同时&#xff0c;没有时间去实际测试&#xff0c;所以我也就顺带的给大家去做了实例演示&#x…

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成

数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成 目录 数据生成 | Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于K-means和SVM的GMM高斯混合分布的数据生成&#xf…

【实现100个unity特效之7】unity 3d实现各种粒子效果

文章目录 先看最终效果下雨效果萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合其他特效爆炸、闪电、火焰、雷雨特效&#xff08;2023/7/5更新&#xff09;源码完结 先看最终效果 下…

爬虫 新闻网站 并存储到CSV文件 以红网为例 V2.0 (控制台版)升级自定义查询关键词、时间段,详细注释

爬虫&#xff1a;红网网站&#xff0c; 获取指定关键词与指定时间范围内的新闻&#xff0c;并存储到CSV文件 V2.0&#xff08;控制台版&#xff09; 爬取目的&#xff1a;为了获取某一地区更全面的在红网已发布的宣传新闻稿&#xff0c;同时也让自己的工作更便捷 对比V1.0升级的…

达梦体系结构:进程架构

达梦体系结构&#xff1a;进程架构 进程结构监听线程会话线程工作线程IO线程日志刷盘线程日志归档线程日志重做线程调度线程检查点线程 达梦数据库由数据库和实例构成&#xff1a; 数据库是指磁盘上存放的数据库文件的集合&#xff0c;包括参数文件、控制文件、数据文件、日志…

ObjectiveC-10-OOP面向对象程序设计-分类/类别

类别(Category)是OjectiveC的一个特性&#xff0c;主要目的是让开发者可以以模块的形式向类添加方法&#xff08;扩展&#xff09;&#xff0c;创建标准化的方法列表供给其他人实现。 有些文档也会翻译成类别&#xff0c;其实是一个意思。 概述 语法说明 类别提供了一个简单的…

Codeforces Round 933 (Div. 3)G. Rudolf and Subway 虚点辅佐的dijkstra,用的链式前向星

Problem - G - Codeforces 推荐视频题解&#xff1a;G_哔哩哔哩_bilibili 思路&#xff1a; 先不管同一个线路上的&#xff0c;就正常建边&#xff0c;这样点距都是1. 然后虚点就是该线路的每个点都连的点。 到虚点的边权是1&#xff0c;表示我们坐这趟线路。 然后这个虚点…

C语言中strlen函数的实现

C语言中strlen函数的实现 为了便于和strlen函数区别&#xff0c;以下命令为_strlen。 描述&#xff1a;实现strlen&#xff0c;获取字符串的长度&#xff0c;函数原型如下&#xff1a; size_t strlen(const char *str);_strlen实现&#xff1a; size_t _strlen(const char*…

在flutter中添加video_player【视频播放插件】

添加插件依赖 dependencies:video_player: ^2.8.3插件的用途 在Flutter框架中&#xff0c;video_player 插件是一个专门用于播放视频的插件。它允许开发者在Flutter应用中嵌入视频播放器&#xff0c;并提供了一系列功能来控制和定制视频播放体验。这个插件对于需要在应用中展…

Django - 视图和模板

视图 视图 - 是具体的业务代码 在 app 下的 views.py 文件中编写代码 from django.http import HttpResponsedef index(request):return HttpResponse("这里是我的站点")为了调用该视图&#xff0c;我们还需要编写urlconf&#xff0c;也就是路由配置。在polls目录中…

Vite 项目中环境变量的配置和使用

Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明&#xff0c;那么需要在项目的根目录下&#xff0c;新建 .env.[mode] 文件用于声明环境变量&#xff0c;如&#xff1a; .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…

Scikit-Learn K均值聚类

Scikit-Learn K均值聚类 1、K均值聚类1.1、K均值聚类及原理1.2、K均值聚类的优缺点1.3、聚类与分类的区别2、Scikit-Learn K均值聚类2.1、Scikit-Learn K均值聚类API2.2、K均值聚类初体验2.3、K均值聚类案例1、K均值聚类 K-均值(K-Means)是一种聚类算法,属于无监督学习。K-M…

OpenFOAM学习笔记

OpenFOAM 计算流体力学&#xff1a;用计算机求解流体控制方程&#xff0c;来模拟真实情况下&#xff0c;流体的流动状态OpenFOAM的离散方法&#xff1a;有限体积法&#xff0c;将整个空间划分成若干个控制体OpenFOAM使用的网格系统&#xff1a;同位网格&#xff08;Collocated…

nvm保姆级安装使用教程

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 开发环境篇 ✨特色专栏&#xff1a; M…