上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 50 下一页
摘要: 题目描述: 题解: 普通的动态规划,dp[i][j]表示s1中前i个字符与s2中前j个字符交错形成s3前(i+j)个字符是否成立。状态转移的时候按照s3长度递增的顺序去推。 对于长度为i的情况,从s1,s2中找出与s3[i-1]相同的字符对应的位置k,然后用dp[i][i-k] = max(dp[i 阅读全文
posted @ 2020-02-13 17:22 猪突猛进!!! 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解:首先要了解卡特兰数的递归公式。对于序列[1,2,....n]构成的二叉搜索树,我们按顺序选择i作为根节点,[1,..i-1]构成左子树,[i+1,....n]作为右子树。递归的重复上述操作即可 (之前写树的题返回值都是单个值,这里递归返回值为节点序列,因为有很多种情况) AC代码: 阅读全文
posted @ 2020-02-13 15:54 猪突猛进!!! 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 最开始想的方法用一个vector存下这颗树的中序遍历,然后看这个vector是否严格升序。这里空间复杂度高了,实际上在递归遍历 二叉树的时候,设定好每个节点的上界和下界,在界限内就ok了,正常递归就可以了。 AC代码: class Solution { public: // 加一个界限 bool i 阅读全文
posted @ 2020-02-12 17:49 猪突猛进!!! 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解: 考虑到一个学术只能看到同一行或者前一行同学的试卷,具有一定的顺序,考虑动态规划。考虑状压dp,定义dp[i][j]表示到i行为止,第i行状态为j时的 最大可坐学生个数,其中j用二进制展开,为1的位置表示坐了学生。状态转移方程为dp[i][j] = max(dp[i-1][k]+k 阅读全文
posted @ 2020-02-12 16:37 猪突猛进!!! 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 转自:https://blog.csdn.net/wookaikaiko/article/details/81105031 一、关于卡特兰数 卡特兰数是一种经典的组合数,经常出现在各种计算中,其前几项为 : 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 阅读全文
posted @ 2020-02-06 20:23 猪突猛进!!! 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解:需要遍历所有可能的字串进行求解,采用滑动窗口的方法进行处理。 滑动窗口常规步骤: 1 .初始,left指针和right指针都指向S的第一个元素. 2. 将 right指针右移,扩张窗口,直到得到一个可行窗口,亦即包含T的全部字母的窗口。 3. 得到可行的窗口后,将left指针逐个右 阅读全文
posted @ 2020-02-06 16:35 猪突猛进!!! 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解:令dp[i]为从位置i开始所能访问的最大下标数。转移方程为dp[i] = max(dp[i],dp[j]+1),j为位置i可达点的下标。自底向上更新的dp,优先把位置低的点d更新出来即可。 (一开始一直没有找到合适的有序遍历方法,其实排序一下就好了 ) AC代码: int maxJ 阅读全文
posted @ 2020-02-02 15:39 猪突猛进!!! 阅读(221) 评论(1) 推荐(1) 编辑
摘要: 题目描述: 题解:二维动态规划,状态为天数以及依次完成的任务数。注意题目给出的限制,任务需要依次执行,这为构造状态转移方程提供了先决条件。 定义dp[i][j]表示i天完成前j个任务的最小难度。状态转移的时候,遍历第i个可能完成的所有工作并取最小值就可以了,记dis[i][j]为第i个job至第j个 阅读全文
posted @ 2020-01-28 18:34 猪突猛进!!! 阅读(424) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解: 找规律。定义f[i]为从位置i到位置n排列的个数。每一个数字在位置i上出现的次数是固定的,为f[i+1],根据这个规律依次求解每一位上的值。 具体过程如下: AC代码: string getPermutation(int n, int k) { string ans = ""; 阅读全文
posted @ 2020-01-13 19:51 猪突猛进!!! 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 题解: dp题目,构造一个三维的dp[i][j][k]表示在i位置时,左手在j字母上,右手在k字母上所需要移动的最小次数。 初始化的时候,dp(0,j,k)=0其他位置为正无穷。 状态转移方程。 t为word[i]对应的字母。要么左手从位置i-1移动位置到位置i,dp(i,t,k) = 阅读全文
posted @ 2020-01-13 18:59 猪突猛进!!! 阅读(299) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 50 下一页