动态规划
鯉鱼
妹妹你大胆地往前走呀
展开
-
剪绳子
题目描述:给你一根长度为 n 绳子,请把绳子剪成 m 段(m、n 都是整数,2≤n≤58 并且 m≥2)。每段的绳子的长度记为k[0]、k[1]、……、k[m]。k[0]k[1] … k[m] 可能的最大乘积是多少?例如当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到最大的乘积18。样例:输入:8输出:18分析:如何把长度为n的绳子剪成若干段,使得各段的乘积最大。...原创 2019-05-14 20:56:53 · 111 阅读 · 0 评论 -
把数字翻译成字符串
题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:0翻译成”a”,1翻译成”b”,……,11翻译成”l”,……,25翻译成”z”。一个数字可能有多个翻译。例如12258有5种不同的翻译,它们分别是”bccfi”、”bwfi”、”bczi”、”mcfi”和”mzi”。请编程实现一个函数用来计算一个数字有多少种不同的翻译方法。样例:输入:“12258”输出:5分析:首先考虑特殊情...原创 2019-05-20 11:49:32 · 202 阅读 · 0 评论 -
解码方法
题目描述:一条包含字母 A-Z 的消息通过以下方式进行了编码:‘A’ -> 1‘B’ -> 2…‘Z’ -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。样例:输入: “226”输出: 3解释: 它可以解码为 “BZ” (2 26), “VF” (22 6), 或者 “BBF” (2 2 6) 。输入: “026”输出: 0分析:这道题和...原创 2019-05-20 12:22:29 · 553 阅读 · 0 评论 -
礼物的最大价值
题目描述:在一个m×n(m,n>0)的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格直到到达棋盘的右下角。给定一个棋盘及其上面的礼物,请计算你最多能拿到多少价值的礼物?样例:输入:[[2,3,1],[1,7,1],[4,6,1]]输出:19解释:沿着路径 2→3→7→6→1 可以得到拿到...原创 2019-05-20 12:45:25 · 130 阅读 · 0 评论 -
无重复字符的最长子串
题目描述:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。样例:输入: “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。输入: “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。分析:声明一个变...原创 2019-05-20 15:15:57 · 467 阅读 · 0 评论 -
丑数
题目描述:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。求第n个丑数的值。样例:输入:5输出:5分析:一个数m是另一个数n的因子,是指n能被m整除,即n%m=0。根据丑树的定义,丑树只能被2、3和5整除。也就是说如果一个数能被2整除,就连续除以2;如果能被3整除,就连续除以3;如果能被5整除就连续除以5,如果最后...原创 2019-05-20 16:55:17 · 183 阅读 · 0 评论 -
矩阵的最小路径和
题目描述给定一个矩阵M,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。(难度:简单,降低空间复杂度)题解dp[i][j]表示到达该位置的最小路径和。当i=0,j>0时dp[i][j]=dp[i][j-1]+m[i][j]当j=0,i大于0时dp[i][j]=dp[i-1][j]+m[i][j]当i>0,j>...原创 2019-06-19 10:17:30 · 1293 阅读 · 0 评论 -
零钱兑换的组合数
题目描述给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。样例输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1注意:你可以假设:0 <= amount (总金额) <= 50001 &...原创 2019-06-19 15:41:59 · 909 阅读 · 2 评论