DAY38,39,41|动态规划01

文章目录

      • 509.斐波那契数
      • 70.爬楼梯
      • 746.使用最小花费爬楼梯
      • 62.不同路径
      • 63.不同路径II
      • 343.整数拆分

509.斐波那契数

代码:

class Solution {public int fib(int n) {if (n==0||n==1) {return n;}//1.确认dp数组和下标含义,一维dp数组,第i个数据为第i个数的的fn的值int[] dp = new int[n+1];//2.确认递推公式 fn = f(n-1)+f(n-2)//3.初始化dp数组,dp[0] = 0, dp[1] = 1dp[0] = 0;dp[1] = 1;for (int i = 2; i <= n; i++) {dp[i] = dp[i-1] + dp[i-2];}//4.确认遍历顺序//5.举例推导函数return dp[n];}
}

70.爬楼梯

class Solution {public int climbStairs(int n) {if (n==1) {return 1;}if (n==2) {return 2;}//确认dp数组的含义int[] dp = new int[n+1];//确认递推公式 dp[n] = dp[n-1] + dp[n-2];//确认dp数组的初始化dp[1] = 1;dp[2] = 2;//确认遍历顺序,开始遍历;for (int i = 3; i <= n; i++) {dp[i] = dp[i-1] + dp[i-2];}//举例推导函数return dp[n];}
}

746.使用最小花费爬楼梯

class Solution {public int minCostClimbingStairs(int[] cost) {//确认dp数组;dp[i] 表示跳到第i层楼梯并且再继续往上爬的最小支付费用int[] dp = new int[cost.length];//确认递推公式 dp[i] = Math.min(dp[i-1], dp[i-2]) + cost[i];//dp数组初始化dp[0] = cost[0];dp[1] = cost[1];if (cost.length == 2) {return Math.min(dp[0], dp[1]);}//确认遍历的顺序for (int i = 2; i < cost.length; i++) {dp[i] = Math.min(dp[i-1], dp[i-2]) + cost[i];}//举例推导函数return Math.min(dp[cost.length-1], dp[cost.length-2]);}
}

62.不同路径

class Solution {public int uniquePaths(int m, int n) {/*** 这一题思考了一下,如果想到达终点,那么就只能从终点的上一个位置或者从终点的左侧位置到达,* 那么可以推导出 dp[m][n] = dp[m-1][n] + dp[m][n-1];**/if (m == 1||n==1) {return 1;}//确定dp数组int[][] dp = new int[m+1][n+1];//确认递推公式,dp[m][n] = dp[m-1][n] + dp[m][n-1];//dp数组的初始化,先给第二列和第二行的数据都调整为1for (int i = 1; i < m+1; i++) {dp[i][1] = 1;}for (int i = 1; i < n+1; i++) {dp[1][i] = 1;}//确认dp数组的遍历顺序,从第二列第二行开始遍历整个表格,for (int i = 2; i < m+1; i++) {for (int j = 2; j < n+1; j++) {dp[i][j] = dp[i-1][j] + dp[i][j-1];}}//举例推导函数return dp[m][n];}
}

63.不同路径II

class Solution {public int uniquePathsWithObstacles(int[][] obstacleGrid) {int m = obstacleGrid.length;int n = obstacleGrid[0].length;if (obstacleGrid[0][0] == 1) {return 0;}if (obstacleGrid[m-1][n-1] == 1) {return 0;}if (m==1||n==1) {for (int i = 0; i < m; i++) {for (int j = 0; j < n; j++) {if (obstacleGrid[i][j] == 1) {return 0;}}}return 1;}//确认dp数组int[][] dp = new int[m+1][n+1];//确认递推公式 递推函数依然为 dp[i][j] = dp[i][j-1] + dp[i-1][j];//初始化递推数组dp[1][1] = 1;//确认遍历顺序for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (i==1&&j==1) continue;if (obstacleGrid[i-1][j-1] == 1) {dp[i][j] = 0;} else {dp[i][j] = dp[i-1][j] + dp[i][j-1];}}}//举例推导函数return dp[m][n];}
}

343.整数拆分

class Solution {public int integerBreak(int n) {if (n == 2) {return 1;}//确认dp数组含义int[] dp = new int[n+1];//确认递推公式, dp[i] = Math.max(dp[i], Math.max(dp[j]*(i-j), (i-j) * j));//dp数组初始化dp[2] = 1;//确认dp数组的遍历顺序for (int i = 3; i <= n; i++) {for (int j = 1; j < i-1; j++) {dp[i] = Math.max(dp[i], Math.max(dp[j] * (i-j), (i-j) * j));}}//举例推导结果函数return dp[n];}
}

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

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

相关文章

关于ssti(简介)

ssti&#xff08;Server-Side Template Injection&#xff09;即服务器端模版注入。 首先&#xff0c;在介绍ssti漏洞之前&#xff0c;需要了解web前端框架&#xff08;MVC&#xff09;中对模版文件的调用和渲染&#xff0c;Web框架比如Flask&#xff08;以使用 Python 编写的轻…

【Linux】Docker 安装部署 Nacos

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 【Linux】Docker 安装部署 Nacos docker搜索na…

Leetcode—289. 生命游戏【中等】

2024每日刷题&#xff08;126&#xff09; Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…

信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习)

1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构&#xff0c;有利于找到目标网络的关键节点&#xff0c;从而提高攻击效率&#xff0c;达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统&#xff0c;确认目标系统适合哪种类型的攻击。 3、百度…

电动汽车电机转矩计算(个人交流使用)

电动汽车电机转矩计算 Motor torque calculation for EV 驱动力-行驶阻力平衡公式【Driving force- resistance balance formula】 F t F f F w F i F j F_t F_f F_w F_i F_j Ft​Ff​Fw​Fi​Fj​ where F t , 驱动力 [ Driving force ] F f &#xff0c;滚动阻力 […

【嵌入式必读】一文彻底理解PID自整定及PID自整定代码设计

文章目录 1. 前言2. PID简介3. 常用的PID自整定方法3.1 临界度比例法3.2 衰减曲线法 4. 继电反馈整定法原理4.1 继电反馈自整定的基本思想4.2 继电反馈自整定原理 5. 算法设计5.1 振荡的生成5.2 提取出临界周期 T c T_c Tc​和振荡波形幅值 A A A5.3 计算出PID参数 6 原代码6.1…

回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法

回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法 目录 回归预测 | Matlab实现基于CNN-SE-Attention-ITCN多特征输入回归组合预测算法预测效果基本介绍程序设计参考资料 预测效果 基本介绍 【模型简介】CNN-SE_Attention结合了卷积神经网络&#xff…

navicat premium16.3.9重置

软件下载 官网地址&#xff1a;https://navicat.com.cn/products/ # 准备脚本 1、建一个txt 2、复制以下代码 3、修改文件格式为bat 4、运行bat文件 5、重新打开navicat&#xff0c;试用期重置为14 经测试16.2.3以上版本均可用 echo off set dnInfo set dn2ShellFolder set r…

【计组OS】访存过程以及存储层次化结构

苏泽 本专栏纯个人笔记作用 用于记录408 学习的笔记记录&#xff08;敲了两年码实在不习惯手写笔记了&#xff09; 如果能帮助到大家当然最好 但由于是工作后退下来备考 很多说法和想法都会结合实际开发的思想 可能不是那么的纯粹应试哈 希望大家挑选自己喜欢的口味食用…

AIGC技术的未来与展望

如何看待AIGC技术&#xff1f; 方向一&#xff1a;技术应用 AIGC&#xff08;人工智能生成内容&#xff09;技术已经在多个领域得到应用&#xff0c;包括但不限于传媒、电商、教育、娱乐和工业设计。例如&#xff0c;在传媒行业&#xff0c;AIGC技术被用于自动生成新闻稿件、…

SpringBootWeb入门

SpringBoot可以帮助我们快速的构建应用程序、简化开发、提高效率 创建SpringBoot工程&#xff0c;并勾选web开发相关依赖 定义HelloController类&#xff0c;添加方法&#xff0c;并添加注解 运行测试 创建SpringBoot工程(联网下载) 在File里面点击new Module 点击next 修…

信创 | 信创产业数字化转型与升级:路径规划与实践!

信创产业的数字化转型与升级路径&#xff0c;主要围绕着构建国产化信息技术软硬件底层架构体系和全周期生态体系&#xff0c;解决核心技术关键环节“卡脖子”的问题&#xff0c;以推动中国经济数字化转型的平稳健康发展。 一、信创产业的发展趋势包括&#xff1a; 加强国产信息…

UVA1048/LA3561 Low Cost Air Travel

UVA1048/LA3561 Low Cost Air Travel 题目链接题意输入格式输出格式 分析AC 代码 题目链接 本题是2006年ICPC世界总决赛的A题 题意 很多航空公司都会出售一种联票&#xff0c;要求从头坐&#xff0c;上飞机时上缴机票&#xff0c;可以在中途任何一站下飞机。比如&#xff0c;假…

避雷!这本7.7分毕业神刊,影响因子狂涨6.179,最新分区上升,却沦为风险期刊!

近日&#xff0c;科睿唯安又连续对多本期刊进行重新评估&#xff0c;多本「JCR Q1」沦为风险期刊。 值得注意的是&#xff0c;又一本中科院顶刊COMPUTERS IN BIOLOGY AND MEDICINE被打上“On Hold”标签&#xff0c;这是目前“黑名单”收入的第三本中科院TOP刊。 此前&#xff…

基于Springboot的校园新闻管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的校园新闻管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

硬件设计细节1-缓冲驱动器使用注意事项

目录 一、缓冲驱动器二、实例分析1.硬件结构2.问题描述3.原因分析4.原因定位 三、结论 一、缓冲驱动器 缓冲驱动器通常用于隔离、电平转换等应用场景。在使用时&#xff0c;需要关注的点较多&#xff0c;如电平范围、频率范围、延时、控制方式、方向以及输入输出状态。通常&am…

Redis(持久化)

文章目录 1.RDB1.介绍2.RDB执行流程3.持久化配置1.Redis持久化的文件是dbfilename指定的文件2.配置基本介绍1.进入redis配置文件2.搜索dbfilename&#xff0c;此时的dump.rdb就是redis持久化的文件3.搜索dir&#xff0c;每次持久化文件&#xff0c;都会在启动redis的当前目录下…

初识C++ · 类和对象(下)

目录 1 再谈构造函数 2 类中的隐式类型转换 3 Static成员 4 友元和内部类 5 匿名对象 6 编译器的一些优化 1 再谈构造函数 先看一段代码&#xff1a; class Date { public :Date(int year, int month, int day){_year year;_month month;_day day;} private:int _ye…

【强训笔记】day13

NO.1 代码实现&#xff1a; #include <iostream>#include<string>using namespace std;int n,k,t; string s;int func() {int ret0;for(int i0;i<n;i){char chs[i];if(chL) ret-1;else{if(i-1>0&&i-2>0&&s[i-1]W&&s[i-2]W) retk…

C++:模板初阶

文章目录 泛型编程函数模板概念函数模板格式函数模板的原理函数模板的实例化模板参数的匹配原则 模板类类模板的定义格式类模板实例化 泛型编程 如何实现一个通用的交换函数呢&#xff1f; 函数重载可以帮助我们完成 void Swap(int& left, int& right) {int temp l…