摘要:
零钱兑换也是动态规划的典型问题,一般是给你几种零钱,数量不限,给一个amount,问共有多少种兑零钱的方法。 我们看一个案例 案例1: 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬 阅读全文
posted @ 2022-11-01 16:54
Mars.wang
阅读(341)
评论(0)
推荐(0)
摘要:
回文串是从左到右和从右到左读起来一样的字符串,变种还有回文子序列,区别就是字符可以不连续。 求回文串个数、最长回文串、最长回文序列也是典型的二维动态规划问题。 我们通过几个简单的案例看一下这些题目的规律。 案例1:给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不 阅读全文
posted @ 2022-11-01 14:27
Mars.wang
阅读(322)
评论(0)
推荐(0)
摘要:
公共子序列是二维动态规划的典型问题,一般用了求两个字符串的相似程度。 我们看一个案例: 案例1:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串中的字符构成,这 阅读全文
posted @ 2022-11-01 13:50
Mars.wang
阅读(162)
评论(0)
推荐(0)
摘要:
子序列是序列的一部分,元素可以不连续。 子串是字符串的一部分,必须连续。 求子序列的和、连续递增子序列都是经典的一维动态规划问题。 这一类题目都有差不多的思路,我们看案例。 案例1:有一个整数数组 nums ,请你找出一个具有最大和的连续子数组,返回其最大和。子数组是数组中的一个连续部分。 我们假设 阅读全文
posted @ 2022-11-01 13:34
Mars.wang
阅读(81)
评论(0)
推荐(0)
摘要:
编辑距离也是动态规划的经典题目,通常需要计算从一个字符串通过一系列操作变成另一个字符串需要的最小步数。 或用来查看两个字符串的相似程度。 我们从一个简单的题目来看: 1.有两个单词 word1 和 word2 ,每步可以删除任意一个字符串中的一个字符。请计算使得 word1 和 word2 相同所需 阅读全文
posted @ 2022-11-01 10:37
Mars.wang
阅读(258)
评论(0)
推荐(0)
摘要:
动态规划是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法,常常适用于有重叠子问题和最优子结构性质的问题,并且记录所有子问题的结果,因此动态规划方法所耗时间往往远少于朴素的穷举解法。 动态规划有自底向上和自顶向下两种解决问题的方式。自顶向下即记忆化递归,自底向上就是递推。 使用动态规划 阅读全文
posted @ 2022-11-01 09:45
Mars.wang
阅读(409)
评论(0)
推荐(0)
浙公网安备 33010602011771号