Dynamic Programming
文章平均质量分 53
K.Sun
这个作者很懒,什么都没留下…
展开
-
动态规划之最优的子结构属性(Optimal Substructure Property)
原文地址:http://www.geeksforgeeks.org/dynamic-programming-set-2-optimal-substructure-property/As we discussed in Set 1, following are the two main properties of a problem that suggest that the given翻译 2016-10-13 10:57:34 · 8118 阅读 · 0 评论 -
动态规划之最小带权路径(Min Cost Path)
原文地址:Dynamic Programming | Set 6 (Min Cost Path)已知一个成本矩阵cost[][],位置(m, n)的权重是cost[][],写一个函数,这个函数返回从(0, 0)到(m, n)的最小带权路径。矩阵的每个格子表示的是通过这个格子的代价。到达(m, n)的路径总代价是这条路上所有代价和(包括出发点和终点)。你只可以从当前的格子向下,向右,或者对角线移动到下翻译 2016-10-16 11:31:51 · 4415 阅读 · 0 评论 -
计算三角阵的最大路径和
原文地址:Maximum path sum in a triangle已知一个由数字组成的三角,从三角的顶部数字开始移动到下一层的相邻元素,找出从顶部到底部的最大和。例如:输入: 3 7 4 2 4 68 5 9 3输出:23解释:3 + 7 + 4 + 9 = 23 输入: 8 -4 4 2 2 61 1 1 1输出:19解释:8 + 4 + 6 + 1 = 19翻译 2017-02-10 14:56:36 · 811 阅读 · 0 评论 -
计算在已知字符串中所有回文子序列的数目
原文地址:Count All Palindromic Subsequence in a given String在已知的字符串中查找有多少个回文的子序列(没必要对相同的做区分)。注意空字符串不能看作是回文。例子:输入 : str = "abcd"输出 : 4解释 :- 回文子序列有 : "a" ,"b", "c" ,"d" 输入 : str = "aab"输出 : 4解释 :- 回文子序列有翻译 2016-11-17 17:50:12 · 2603 阅读 · 1 评论 -
动态规划之子集和问题
原文地址:Dynamic Programming | Set 25 (Subset Sum Problem)已知一个非负整数集,与sum的值,确定这个集合是否存在这样的子集,这个子集所有元素和等于sum。例子: set[] = {3, 34, 4, 12, 5, 2}, sum = 9输出: True //There is a subset (4, 5) with sum 9.设isSubSe翻译 2016-11-13 13:54:11 · 8159 阅读 · 0 评论 -
动态规划之递增子序列最大和(Maximum Sum Increasing Subsequence)
原文地址:Dynamic Programming | Set 14 (Maximum Sum Increasing Subsequence)已知一个含有n个正整数的数组,写一个程序能让其找到已知数组的子序列的最大和,也就是说子序列中的整数是递增排序的。例如,如果输入是:{1, 101, 2, 3, 100, 4, 5},那么输出应该就是106 (1 + 2 + 3 + 100),如果输入是:{3,翻译 2016-10-20 09:26:30 · 2393 阅读 · 0 评论 -
动态规划之最长回文子字符串(Longest Palindromic Substring)
原文地址:Longest Palindromic Substring | Set 1已知一个字符串。找出这个字符串中的最长回文子字符串。例如,如果已知的字符串是:“forgeeksskeegfor”,那么输出的结果应该是:“geeksskeeg”。方法1 (暴力法) 最简单的方法就是检验每一个子字符串,看看它们到底是不是回文的。我们可以用三层循环,外面的两个循环根据固定的边角字符逐个找出所有的子字翻译 2016-10-18 12:49:27 · 919 阅读 · 0 评论 -
动态规划之硬币兑换(Coin Change)
原文地址:Dynamic Programming | Set 7 (Coin Change)已知N,如果我们想要换N分,而且每种S = { S1, S2, .. , Sm} 价值的硬币是不限数量的,那么我们有多少种方法来兑换?硬币的顺序是无所谓的。例如:N = 4,S = {1,2,3},,因此有四种答案: {1,1,1,1},{1,1,2},{2,2},{1,3}。所以输出应该是4。N = 10,翻译 2016-10-17 10:22:50 · 5280 阅读 · 0 评论 -
动态规划之编辑距离(Edit Distance)
原文地址:Dynamic Programming | Set 5 (Edit Distance) 已知两个字符串str1与str2,str1可以用下面的操作。得到最小的编辑数使得str1转变为str2。 a)insert b)remove c)replace 以上所有的操作成本是一样的。例子:Input: str1 = "geek", str2 = "gesek"Output: 1翻译 2016-10-15 20:51:41 · 1907 阅读 · 0 评论 -
动态规划之最长公共子序列(Longest Common Subsequence)
原文地址:Dynamic Programming | Set 4 (Longest Common Subsequence) 我们已经分别在第一篇、第二篇文章中讨论了重复的子问题与最优的子结构。我们也在第三篇文章中讨论了一个例子。下来我们讲一个最长公共子序列(LCS)作为本文用动态规划来解决的例子问题。LCS问题描述:已知两个序列,找到同时是两个序列且长度最长的子序列。一个子序列是指与一个序列有相同翻译 2016-10-15 16:14:42 · 875 阅读 · 0 评论 -
动态规划之分区问题(Partition problem)
原文地址:Dynamic Programming | Set 18 (Partition problem)分区问题是将已知的集合分成两个子集,这两个子集的元素分别加和是相等的。例子:arr[] = {1, 5, 11, 5}Output: true 这个数组可以被分为:{1, 5, 5}和{11}arr[] = {1, 5, 3}Output: false 这个数组不能被分成两个和相同的子集翻译 2016-10-24 18:12:39 · 9691 阅读 · 0 评论 -
动态规划之最长递增子序列(Longest Increasing Subsequence)
原文地址:http://www.geeksforgeeks.org/dynamic-programming-set-3-longest-increasing-subsequence/We have discussed Overlapping Subproblems and Optimal Substructure properties in Set 1 and Set 2respect翻译 2016-10-13 12:12:37 · 4012 阅读 · 0 评论 -
丑数
原文地址:Ugly Numbers一个数的因数只有2,3或者5这样的质数,那么这个数就被称为丑数(Ugly Numbers)。序列1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, …就是前11个丑数。为了方便,把1也包括进来了。写一个程序找出并打印第150个丑数。方法1(简单)算法循环所有的正整数,直到丑数的个数小于n,如果一个整数是丑数,那么就增加丑数数目。检查一下这个数字是翻译 2016-11-04 10:58:19 · 376 阅读 · 0 评论 -
动态规划之重叠子问题属性(Overlapping Subproblems Property)
Dynamic Programming is an algorithmic paradigm that solves a given complex problem by breaking it into subproblems and stores the results of subproblems to avoid computing the same results again. Foll翻译 2016-10-13 09:25:53 · 3850 阅读 · 0 评论 -
Unique Paths
题目地址:https://leetcode.com/problems/unique-paths/description/A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below).The robot can only move either down or r原创 2018-01-20 17:36:21 · 192 阅读 · 0 评论