摘要:
拿到题,提笔就写分治,结果超时。那很可能需要记录过程,而且这题返回T or F,很像DP。 1)建立矩阵:dp[i][j]表示isTnterleave(s1[0:i], s2[0:j], s3[0:(i+j)])的值,也就是下图中紫色部分是否可以由红色部分和蓝色部分交替拼接组成。dp的初始值全为F 阅读全文
posted @ 2019-10-18 13:52
热锅上的码裔
阅读(87)
评论(0)
推荐(0)
摘要:
受LC96. Unique Binary Search Trees的启发,使用递归。包含i...j的BST应该是取好k (i≤k≤j),之后包含i..(k-1)的BST+k+包含(k+1)..j的BST,如下图所示。 那么包含i...j的所有BST取遍所有看k作为root,从包含i..(k-1)的所 阅读全文
posted @ 2019-10-18 12:37
热锅上的码裔
阅读(111)
评论(0)
推荐(0)
摘要:
看到2叉数,想到两组算法:DFS和分治。本题使用分治,答案来自大神basketwang的YouTube解答(https://www.youtube.com/watch?v=Lq3Kr7-qXGI)。希望有一天自己也能独立想出来。 废话不多说,思路是这样: 若S1和S2互为scramble strin 阅读全文
posted @ 2019-10-18 07:59
热锅上的码裔
阅读(269)
评论(0)
推荐(0)
摘要:
我觉得这是道数论题,因为一般人能想到的就是像Permutations那道题一样,用DFS遍历得到所有permutations,然后返回第k个permutations,时间复杂度为T(n)=O(1)+nT(n-1), 这里深度拷贝的平均时间复杂度为 O(1),递归每次排除掉一个,故每次递归的时间复杂度 阅读全文
posted @ 2019-10-18 03:46
热锅上的码裔
阅读(91)
评论(0)
推荐(0)
摘要:
做这道题之前建议先做one edit distance,那道题我本能地使用DP结果超时。这道题里用DP正好。思路是这样: 1、建立2维数组dp,dp[i][j]表示word1[0:i]与word2[0:j]的edit distance(最短编辑距离),注意这里dp矩阵的大小是(len1+1)*(le 阅读全文
posted @ 2019-10-18 03:40
热锅上的码裔
阅读(116)
评论(0)
推荐(0)
摘要:
这道题可以说是84的延伸。可以把从底部向上连续1的个数想成84题中柱子的高度, 详细解答参考basketwang的YouTube(https://www.youtube.com/watch?v=2Yk3Avrzauk) 阅读全文
posted @ 2019-10-18 03:34
热锅上的码裔
阅读(118)
评论(0)
推荐(0)
摘要:
题意:给定一个数组代表一个柱状图里每根柱子的高度,每根柱子宽为1,找到柱状图中面积最大的矩形的面积。 看到这道题首先想到的是DP,用两维数组记录i~j之间的矩形面积,再遍历搜索一遍即可求得最大面积,时间复杂度为O(n2). 这样是会超时的,代码如下: class Solution(object): 阅读全文
posted @ 2019-10-18 03:07
热锅上的码裔
阅读(128)
评论(0)
推荐(0)

浙公网安备 33010602011771号