先贴问题:

Delete Operation for Two Strings

Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string.

说白了就是找到两个字符串非连续最大公共字符串。如果对dp算法很熟悉的很快就能想到这个问题的解法,然而我并不是很熟悉,所以用了一个很挫很慢的方法,个人理解应该是分治法,很多步骤被重复算了很多次。

写的很搓,轻喷。

下面就要介绍一下简单易懂的dp算法啦,先上代码(leetcode里大神写的,我只是用golang重写一遍)

思路很简单,比如 word1=abcd,word2=obdce。

用一个二维数组保存计算的值(代码里多加了一行和一列置0方便计算)

比如比较word1的c和word2的c的时候,因为ab和obd的最大相同是1,所以这个位置上只需要dp[i-1][j-1]+1

动态规划和分治区别:

动态规划:它通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。

分治法:若用分治法来解这类问题,则分解得到的子问题数目太多,有些子问题被重复计算了很多次。如果我们能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,这样就可以避免大量的重复计算,节省时间。我们可以用一个表来记录所有已解的子问题的答案。

注:不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。这就是动态规划法的基本思路。

这一题算是让我对动态规划有一个更深的印象,故记录一下。以前虽然会写,但是每次遇到问题都不会想不到去用,还是自己疏于练习。

纸上得来终觉浅,绝知此事要躬行呀。

有疑问加站长微信联系(非本文作者)

c语言dp算法,通过leetcode学算法——动态规划(dp)相关推荐

  1. 南京邮电大学c语言实验报告4,南京邮电大学算法设计实验报告——动态规划法...

    <南京邮电大学算法设计实验报告--动态规划法>由会员分享,可在线阅读,更多相关<南京邮电大学算法设计实验报告--动态规划法(12页珍藏版)>请在人人文库网上搜索. 1.实 验 ...

  2. 【码书】一本经典且内容全面算法书籍,学算法必备

    之前推荐了好几本算法书,有<啊哈!算法>,有<算法图解>,有<漫画算法>,也有<我的第一本算法书>,很多粉丝不乐意了,觉得我推荐了这么多算法书籍,竟然没 ...

  3. 《趣学算法(第2版)》读书笔记 Part 1 :如何高效学习算法

    14天阅读挑战赛 系列笔记链接 <趣学算法(第2版)>读书笔记 Part 1 :如何高效学习算法 <趣学算法(第2版)>读书笔记 Part 2 :算法入门 <趣学算法(第 ...

  4. 《趣学算法(第2版)》读书笔记 Part 4 :贪心算法基础(操作)

    14天阅读挑战赛 系列笔记链接 <趣学算法(第2版)>读书笔记 Part 1 :如何高效学习算法 <趣学算法(第2版)>读书笔记 Part 2 :算法入门 <趣学算法(第 ...

  5. c语言起点零算法32继续求多项式,武汉科技大学ACM :1001: 零起点学算法34——继续求多项式...

    Problem Description 输入1个正整数n, 计算1+(1+2)+(1+2+3)+...+(1+2+3+...+n) Input 输入正整数n(多组数据) Output 输出1+(1+2 ...

  6. c语言可视化_这些算法可视化网站助你轻松学算法

    前言 无疑,数据结构与算法学习最大的难点之一就是如何在脑中形象化其抽象的逻辑步骤.而图像在很多时候能够大大帮助我们理解其对应的抽象化的东西,而如果这个图像还是我们自己一点点画出来的,那么无疑这个印象是 ...

  7. c语言高精度算法阶乘_学了这么久的C语言,原来可以这样解决算法问题...

    C语言中有有许多经典的算法,这些算法都是许多人的智慧结晶,也是编程中常用的算法,这里面包含了众多算法思想,掌握这些算法,对于学习更高级的.更难的算法都会有很大的帮助,会为自己的算法学习打下坚实的基础. ...

  8. 【小Y学算法】⚡️每日LeetCode打卡⚡️——19.加一

    本文章是⭐️小Y学算法⭐️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个----

  9. 【小Y学算法】⚡️每日LeetCode打卡⚡️——18.最后一个单词的长度

    本文章是⭐️小Y学算法⭐️的内容,该专栏还有多篇优质内容在等待你观看,现在点击右上角点击这个----

  10. 《跟我学算法系列文章——一文吃透动态规划》

    <一文吃透动态规划--Dynnamic Planning> 关键词:DP算法 面试 最值问题 子序列问题 子数组问题 回文问题 回溯算法 文章目录 <一文吃透动态规划--Dynnam ...

最新文章

  1. edgesForExtendedLayout
  2. C# 如果何从线程中操作控件
  3. 第二篇:cout和endl的用法
  4. 获取iOS设备的型号
  5. codemirror mysql_CodeMirror 实现 JavaScript、 MySql 关键字的变色和自动实时提示 autocomplete...
  6. 大会线上同步直播, 来不到现场也可以线上看直播,以及参会秘籍
  7. 阎焱多少身价_2020年,数据科学家的身价是多少?
  8. WEB平台架构之:LAMP(Linux+Apache+MySQL+PHP)
  9. 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”
  10. 雀巢联手京东,发布人工智能家庭营养健康助手
  11. 机器学习之聚类算法:K均值聚类(一、算法原理)
  12. 【ElenmentUI el-date-picker日期选择器,结束时间不得早于开始时间,且只能选择距开始时间指定天数的日期】
  13. 生成网络论文阅读:PGGAN(一):论文速览
  14. (4.3.1.11)微信扫描二维码无法下载apk文件解决办法
  15. C++控制台程序(文字小游戏)
  16. 蓝鲸智云统一开发环境搭建指南
  17. 买笔记本要注意什么呢?
  18. 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)
  19. Spring aop(Aspectj)对dynamic proxy的类是无能为力的
  20. 初次接触java小感

热门文章

  1. 正点原子阿尔法linux开发板USB烧录裸机例程
  2. 工业数据采集网关的特点及应用场景
  3. ubuntu20.04WPS解决缺失字体的问题
  4. 实现写邮箱html页面,HTML写的第一个邮箱登陆界面
  5. EasyAR4.0简单使用说明
  6. oracle sqlldr decode,SQLLDR应用举例
  7. 英文单词打字练习与学习
  8. 数据库建模工具Pdman
  9. 计算机导论学后感5000字,计算机导论学习心得体会
  10. Lua代码翻译及预编译字节码