动态规划
大鱼qss
阳光的java程序员
展开
-
小易的考试成绩(0 -1背包问题)
小易的考试成绩原创 2022-07-05 11:07:21 · 277 阅读 · 0 评论 -
零钱兑换(完全背包)
题目:给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。示例 1:输入:coins = [1, 2, 5], amount = 11输出:3解释:11 = 5 + 5 + 1示例 2:输入:coins = [2], amount = 3输出:-1示例 3:输入:coins = [1], amount = 0原创 2022-05-29 10:28:32 · 198 阅读 · 0 评论 -
剑指 Offer 46. 把数字翻译成字符串
题目:给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"提示:0 <= num < 231典型的动态规划解法,首先需要将数字按位存到数组里,使用的原创 2022-05-14 14:53:48 · 129 阅读 · 0 评论 -
剑指 Offer 42. 连续子数组的最大和(动态规划)
输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示:1 <= arr.length <= 10^5-100 <= arr[i] <= 100dp[i] 表示以i结尾的最大子数组,所以状态转移方程:dp[i] = Math.max(dp[i - 1] +原创 2022-05-13 18:39:29 · 243 阅读 · 0 评论 -
股票最大利润
参考labuladong算法小抄,代码先放这里,留念:class Solution { public int maxProfit(int[] prices) { int n = prices.length; if(n == 0) return 0; int dp_i_0 = 0; int dp_i_1 = -10000; for(int i = 0 ;i < n ;i++) {.原创 2022-05-11 21:32:25 · 109 阅读 · 0 评论 -
最长回文子串和最长回文子序列
这两个题目我觉得可以放在一起讨论下:字长回文子序列首先是回文子序列的题目,涉及到子序列,一般都是不连续的问题:那么首推动态规划,并且这个题目只要求返回长度,那么dp数组用来存子问题的最长回文串长度就可以,即dp[i][j] 表示,从i -j这段的最长回文子串的长度,递推公式:if( s.charAt(i) == s.charAt(j)) ans[i][j] = ans[i + 1][j - 1] + 2; else原创 2022-05-08 15:27:14 · 441 阅读 · 0 评论 -
不同的二叉搜索树(递推)
拿到这个题目,首先就定位到,这肯定是一个找规律的题目,也就可以使用递推(动态规划的解法进行解决)。然后开始疯狂找规律,其实给的这个图简化了这个题目,不然还真的不好想。我们可以仔细分析一下样例3 这个图,二叉搜索树的树根将其余的节点分成了左右两棵字数,那么我们可以遍历树根,每一种树根的左右子树的节点树是固定的。那么这个题目抽象一下:一个n个节点的二叉搜索树,根节点的可能性为1 ~ n ,那么递推公式就出来了dp[i] += dp[j -1] * dp[i - j];其中j是遍历1 ~ i;那么这个.原创 2022-05-07 16:42:38 · 234 阅读 · 0 评论 -
编辑距离(动态规划)
考虑使用动态规划解法,dp数组需要时二维的,dp[i][j] 表示 word1的前 i 个和word2前 j 个字符的最小距离。那么需要现有一个base条件即某一个单词为0,则直接返回另一个单词的长度。那么初始化代码如下: int n = word1.length(); int m = word2.length(); int[][] dp = new int[n + 1][ m + 1]; for(int i =1 ;i <= n ; i++.原创 2022-05-07 13:01:45 · 377 阅读 · 0 评论