昨天三道算法题没做出来,很是惭愧,感改造改造自己觉自己像是个小丑,于是痛定思痛,决定
改造改造自己。
就从最熟悉的陌生人–动态规划开始吧。

所谓动态规划就是一种方法,利用历史数据推导出现在所需要的数据,比如青蛙跳台阶啥的。

动态规划有一个做题流程就是
1.确定dp[i]意义
2.找到关系式 dp[i] = dp[i-1] + dp[i-2]
3.找到初始值dp[0]等

方法和思想就是这么简单粗暴
话不多说让我们开始

第一道题是青蛙跳台阶
核心代码 dp[i] = dp[i-1] + dp[i-2]
初始值 dp[0] = 0 dp[1] = 1 dp[2] = 2

第二道题是找右下角的礼物
核心代码是

for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {dp[i][j] = dp[i-1][j] + dp[i][j-1];}}

第三道题是求从左上角到右下角路径值之和最小
核心代码是

 for (int i = 1; i < m; i++) {for (int j = 1; j < n; j++) {dp[i][j] = Math.min(dp[i-1][j], dp[i][j-1]) + arr[i][j];}}

时间复杂度为O(m*n)

第四道 编辑距离
核心代码

for (int i = 1; i <= n1; i++) {for (int j = 1; j <= n2; j++) {// 如果 word1[i] 与 word2[j] 相等。第 i 个字符对应下标是 i-1if (word1.charAt(i - 1) == word2.charAt(j - 1)){dp[i][j] = dp[i - 1][j - 1];}else {dp[i][j] = Math.min(Math.min(dp[i - 1][j - 1], dp[i][j - 1]), dp[i - 1][j]) + 1;}         }}

第五道
打家劫舍

class Solution {public:int rob(vector<int>& nums) {vector<int> dp = vector<int>(nums.size(), 0);dp[0] = nums[0];if(nums.size() < 2)return dp[0];dp[1] = max(nums[0],nums[1]);for(int i = 2; i < nums.size(); i++){dp[i] = max(dp[i - 2] + nums[i], dp[i - 1]);}return dp[nums.size() - 1];}
};

第六道
Leetcode 53. 最大子序和

if(nums.size() == 0) return 0;
int* dp = new int[nums.size()];
dp[0] = nums[0];
int max = dp[0];
for(int i = 1; i < nums.size(); i++)
{dp[i] = max(nums[i] + dp[i - 1], nums[i]);if(max < dp[i[){max = dp[i];}
}
return max;

第七道 零钱兑换

 int* dp = new int[amount + 1];for(int i = 0; i <= amount; i++) {dp[i] = amount + 1;}dp[0] = 0;for(int i =1; i< amount + 1; i++){for(int j = 0 ; j < counj.size(); j++){if(counj <= i)dp[i] = min(dp[j], dp[i - counj[j]] + 1);}}return dp[i];

第八题 正则表达式

int s = s.size();
int p = p.size();
dp[0][0] = true;
for(int i = 2; i <= p; i++)
{if(p[i - 1] == '*')dp[0][i] = dp[0][i - 2];
}for(int i = 1; i <= s; i++)
{for(int j = 1; j <= p; j++){if(s[j -1] == p[j - 1] || p[j - 1] == '.'){dp[i][j] = dp[i -1][j - 1];} else  //*{if(p[j - 2] != s[i - 1] && p[j - 2] != '.'){dp[i][j] = dp[i][j - 2];}else{dp[i][j] = dp[i - 1][j] || dp[i][j - 2] || dp[i][j - 1]}}}
}return dp[s][p];

小丑改造计划之动态规划相关推荐

  1. 小丑改造计划之复习一

    1.函数重载 根据参数个数 参数顺序 参数类型 的不同 可以在同一个域存在多个同名函数 但是不可以根据返回值 缺省参数的不同去重载函数 2.指针和引用的区别 第一点 指针是内存地址,会开辟内存空间,而 ...

  2. 马斯克的“大脑改造计划”,还需要点亮哪些技能树?

    硅谷钢铁侠的倾情安利,让脑机接口成了一个火到烫耳的热词. 7月17日旧金山的一场公开活动中,马斯克投资的神经科学公司Neuralink公布了最新的脑机接口装置."无损植入"&quo ...

  3. 彧吉他官网改造计划(二)

    经过半天的详细思考,基本决定了本次改造计划的技术栈以及将要实现的功能,并且本次改造会使用 git 和 GitHub 对官网进行版本管理,以免造成曾经网站被劫持之后到处找文件的尴尬. 首先是基本需求分析 ...

  4. 环信即时通讯SDK集成——环信 uni-app-demo 升级改造计划——整体代码重构优化(二)

    概述 本次关于 uni-app 代码整体重构工作,基于上一期针对 uni-app 官网 demo 从 vue2 迁移 vue3 框架衍生而来,在迁移过程中有明显感知,目前的项目存在的问题为,项目部分代 ...

  5. 麦当劳的AI改造计划

    这两年餐饮行业的AI化如火如荼,但通向罗马的道路有千万条. 而与许多餐饮(比如必胜客.肯德基)热衷于与科技企业强强联手.合作共赢不同的是,麦当劳总想搞个大新闻,方法也很简单,就是一个字--买! 201 ...

  6. 机械革命z2黑苹果改造计划第二番-MacOS实用软件渗透工具

    机械革命z2黑苹果改造计划第二番-实用软件 Mac实用工具 这是旧电脑改造计划的第二篇,就是安装一些常用软件和一些渗透测试工具,武装灵魂成为真正的生产力工具 首先推荐一个网站,www.mactools ...

  7. 机械革命z2黑苹果双系统改造计划

    机械革命z2黑苹果改造计划 原来的系统硬盘才256G实在太小了,趁固态便宜搞了一块大华C900Plus-b 1T固态,加上之前电脑里后加的一块海康威视c2000pro 1T准备搞一个win+mac双系 ...

  8. Robi改造计划-开篇

    Robi从11月开始在大陆卖了,目前出到6期. 设计真的很赞,但是我已经了解到Robi的软件不够,不是我们喜欢的辣么有趣.我决定改造它:用3块更强的ARM A9或者A10处理器,加摄像头和传感器. 为 ...

  9. 【华为OD统一考试B卷 | 200分】宜居星球改造计划(Java JavaScript Python)

    华为OD统一考试A卷+B卷 新题库说明 2023年5月份,华为官方已经将的 2022/0223Q(1/2/3/4)统一修改为OD统一考试(A卷)和OD统一考试(B卷). 你收到的链接上面会标注A卷还是 ...

最新文章

  1. 使用docker toolbox 在windows上搭建统一环境
  2. 轮播swiper配置选项
  3. Win7_Wifi热点
  4. 100c之53:说谎族和诚实族
  5. 26计算限制的异步操作01-CLR
  6. 计算机移动设备有限公司,使计算机,移动设备更节能
  7. wordpress 评论ajax,WordPress教程 WordPress实现提交评论ajax翻页效果教程
  8. python基础入门(9)之字典
  9. PDF阅读器中如何改变线条颜色、线宽和线型等
  10. 解决设备行业尾款回收问题-深思精锐5时钟锁
  11. V8声卡软件调试教程
  12. 干货!Web 网页设计规范
  13. Error response from daemon: Pool overlaps with other one on this address space
  14. 信息检索1.2--几个实用的限定词,site title URL
  15. 对等商务_对等| 第2部分
  16. PMP考试资料考试重点,不看可惜了
  17. 数据预处理:标称型特征的编码和缺失值处理
  18. 电子设计教程12:Buck降压电路
  19. 当Spring Cloud Alibaba Sentinel碰上Spring Cloud Sleuth会擦出怎样的火花
  20. java安装路径有要求吗_jdk安装以及Java环境配置

热门文章

  1. 如何清理Linux跟下的垃圾文件
  2. 低压电工实操考核设备
  3. 百济神州港交所上市:募资9亿美元 高瓴曾参与7轮融资
  4. vc2010 std::tr1 bind库捉虫记
  5. 创蓝253云通讯 paas 短信发送接口和定义说明
  6. Android百度地图之定位图层
  7. Jboot通过redis实现每日登录失败次数限制的问题
  8. 警惕邮件中的发票链接
  9. 西方情人节前一天的话
  10. 助力低碳出行 | 基于ACM32 MCU的电动滑板车方案