dp问题
郑大那只鸟
一只迷途中的大学生
展开
-
最长公共子串 C语言 动态规划
给定两个字符串 text1 和 text2,返回这两个字符串的最长公共子序列。一个字符串的 子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,“ace”是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的「公共子序列」是这两个字符串所共同拥有的子序列。若这两个字...原创 2020-02-28 13:14:58 · 986 阅读 · 0 评论 -
最长上升子序列 C语言 动态规划
给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18] 输出: 4 解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-increasing-subsequence著作权归领扣网络所有。商业转载请...原创 2020-02-24 20:38:50 · 1015 阅读 · 0 评论 -
打家劫舍 动态规划 C语言
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1] 输出: 4 解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 ...原创 2020-02-23 20:58:18 · 773 阅读 · 0 评论 -
整数拆分 动态规划 C语言
第一种方法是采用自上而下得递归方案,所以采用了递归,时间开销比较大,所以在领扣中时间超时了int max(int a, int b){ return a>=b?a:b;}int max3(int a,int b,int c){ return(max(a,max(b,c)));}int integerBreak2(int n,int*a){//递归函数 i...原创 2020-02-22 21:20:12 · 535 阅读 · 0 评论 -
最小路径和 动态规划 C语言
int minPathSum(int** grid, int gridSize, int* gridColSize){/* 按照dp经常得niao性,对于最后的结果,肯定是从两种结果中取最大的一种结果是从左面过来,一种结果是从右面过来同样递归思考,就能得到dp方程dp[i][j]=max{dp[i-1][j],dp[j-1][i]}+grid[i][j] ,其中dp[i][j]表示iX...原创 2020-02-20 21:13:40 · 699 阅读 · 0 评论