
动态规划
刷题总结
h3xz
这个作者很懒,什么都没留下…
展开
-
HDU1087(初识数位dp)
题目链接HDU1087 这道题难在他的思想上,作为入门数位dp的一道基础题并没什么难度,我借此机会写下自己对这题的理解。 动态规划最重要的是掌握他的思想,动态规划的核心思想是把原问题分解成子问题进行求解,也就是分治的思想。 解题思路: 创建数组 a 和数组dp,下标从 1 开始,dp[ i ]表示的是以下标为 i 的元素作为一小段数组的结尾的这段数组的最大值。 比如:dp[ 5 ] = { 1 , 3 , 4 , 2 , 5 } ,dp[ 2 ] 代表以 3 结尾的{1 , 3 }这样一段数组的最大值,因此原创 2020-05-23 15:49:46 · 339 阅读 · 0 评论 -
HDU2089不要62
题目链接:HDU2089不要62 这道题目没有做出来,看来题刷的还不够。问题大致意思是:给出整数区间,求出在区间中的数不含4和62的个数。 一开始我觉得这道题目挺简单的,一来就暴力求解,结果超时,实在不知道怎么改,后来参考了大佬的初学数位DP–hdu 2089才对数位dp有所了解。 下面我们以[ 0 , 3548 ]这个区间来了解数位dp 这与数位区间有关,不能暴力求解,必须在数位上进行递推操作等。 要知道:两个数在进行比较时,我们是从两个数的高位到低位的顺序(如果顺序相反则不行)依次进行比较,当一个数a的原创 2020-05-18 21:20:16 · 324 阅读 · 0 评论 -
5. 最长回文子串(动态规划),java题解
问题链接:5. 最长回文子串 问题描述: 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: “babad” 输出: “bab” 注意: “aba” 也是一个有效答案。 示例 2: 输入: “cbbd” 输出: “bb” 解题思路: 创建一个二维boolean类型的数组dp[ i , j ],dp[ i , j ]表示的是s[ i , j ]是否为回文串,在字符串中先找到两个相同的字符(假设这两个字符下标分别为i ,j),再判断这两个字符之间的字原创 2020-07-28 11:12:47 · 374 阅读 · 0 评论