由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - DP通项公式
相关主题
Bloomberg面试题最长回文串
Amazon Summer Intern Offer, 发面经Palindrome那题,OJ上通不过
Longest common string问题Palindrome那题,OJ上通不过
请教道算法题G四次电面面经
有人同看Longest Palindromic Substring 这道题么?大家帮忙看看我的Palindrome II 的解法
Facebook电话面试总结FB Phone Interview Failed by a simple question
leetcode里的Palindrome partition问题请教一道面试题
专家们,find the longest common substring of two stringsFacebook interview 面经
相关话题的讨论汇总
话题: s1话题: string话题: min话题: dp话题: s2
进入JobHunting版参与讨论
1 (共1页)
r****m
发帖数: 70
1
有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
1. Distinct Subsequence (String S, String T)
F(i, j) = F(i-1, j) , S[i] != T[j]
F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
2. Longest Common Subsequence (String S1, String S2)
F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
最优子结果有关 F(n) = F(n-1)
3. Edit Distance (String S1, String S2)
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) } , S1[i
] == S1[j]
Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
注意: 动态规划初始化
for (int i = 0; i <= len1; i++) {
d[i][0] = i;
}
4. Unique path
F(i, j) = F(i-1, j) + F(i, j-1)
5. Longest Substring without Repeating Characters
F(i) = F(i-1) + 1, S[i] doesn't appear before
Min{ F(i-1) + 1, i - map.get(S[i]) }
6. Maximum sub-array
F(i) = F(i-1) + A[i], F(i-1) > 0
= A[i] , F(i-1) <= 0
7. Palindrome
F(j) = isPalindrome( i…j ) && F(i)
P(i, j) = P(i+1, j-1) from bottom left corner
8. Minimal coins
F(n) = Min{ F(n-a[i])} i = 0…m (m coins)
9. Regular expression
if(p[j] == '*')
d(i, j) = d(i, j-2) || d(i, j-1) | d(i-1, j)
10. Interleave string
a[i][j] = (a[i-1][j] && s1.charAt(i-1) == s3.charAt(i+j-1))
|| (a[i][j-1] && s2.charAt(j-1) == s3.charAt(i+j-1));
n*******e
发帖数: 4894
2
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

l**o
发帖数: 356
3
H******7
发帖数: 1728
4
fucking nice!thanks1
r*******e
发帖数: 971
5
总结得不错,不过第五个其实不算DP吧,更类似于贪心。
r*******e
发帖数: 971
6
第三个
F(i, j) = F(i-1, j-1) , S1[i
] == S1[j]
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
就行了,不用
t****o
发帖数: 33
7
mark
a********e
发帖数: 53
8
留名
t*****3
发帖数: 112
9
也想说这个,幸好看了回帖。还是赞一下楼主。

i

【在 r*******e 的大作中提到】
: 第三个
: F(i, j) = F(i-1, j-1) , S1[i
: ] == S1[j]
: F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
: ] != S1[j]
: 就行了,不用

j****3
发帖数: 129
10
nice
相关主题
Facebook电话面试总结最长回文串
leetcode里的Palindrome partition问题Palindrome那题,OJ上通不过
专家们,find the longest common substring of two stringsPalindrome那题,OJ上通不过
进入JobHunting版参与讨论
r****m
发帖数: 70
11
有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
1. Distinct Subsequence (String S, String T)
F(i, j) = F(i-1, j) , S[i] != T[j]
F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
2. Longest Common Subsequence (String S1, String S2)
F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
最优子结果有关 F(n) = F(n-1)
3. Edit Distance (String S1, String S2)
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) } , S1[i
] == S1[j]
Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
注意: 动态规划初始化
for (int i = 0; i <= len1; i++) {
d[i][0] = i;
}
4. Unique path
F(i, j) = F(i-1, j) + F(i, j-1)
5. Longest Substring without Repeating Characters
F(i) = F(i-1) + 1, S[i] doesn't appear before
Min{ F(i-1) + 1, i - map.get(S[i]) }
6. Maximum sub-array
F(i) = F(i-1) + A[i], F(i-1) > 0
= A[i] , F(i-1) <= 0
7. Palindrome
F(j) = isPalindrome( i…j ) && F(i)
P(i, j) = P(i+1, j-1) from bottom left corner
8. Minimal coins
F(n) = Min{ F(n-a[i])} i = 0…m (m coins)
9. Regular expression
if(p[j] == '*')
d(i, j) = d(i, j-2) || d(i, j-1) | d(i-1, j)
10. Interleave string
a[i][j] = (a[i-1][j] && s1.charAt(i-1) == s3.charAt(i+j-1))
|| (a[i][j-1] && s2.charAt(j-1) == s3.charAt(i+j-1));
n*******e
发帖数: 4894
12
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

l**o
发帖数: 356
13
H******7
发帖数: 1728
14
fucking nice!thanks1
r*******e
发帖数: 971
15
总结得不错,不过第五个其实不算DP吧,更类似于贪心。
r*******e
发帖数: 971
16
第三个
F(i, j) = F(i-1, j-1) , S1[i
] == S1[j]
F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
] != S1[j]
就行了,不用
t****o
发帖数: 33
17
mark
a********e
发帖数: 53
18
留名
t*****3
发帖数: 112
19
也想说这个,幸好看了回帖。还是赞一下楼主。

i

【在 r*******e 的大作中提到】
: 第三个
: F(i, j) = F(i-1, j-1) , S1[i
: ] == S1[j]
: F(i, j) = Min { F(i-1, j) + 1, F(i, j-1) + 1, F(i-1, j-1) + 1 }, S1[i
: ] != S1[j]
: 就行了,不用

j****3
发帖数: 129
20
nice
相关主题
G四次电面面经请教一道面试题
大家帮忙看看我的Palindrome II 的解法Facebook interview 面经
FB Phone Interview Failed by a simple questionnlogn for longest increasing subsequence
进入JobHunting版参与讨论
n****2
发帖数: 307
21
mark
g********r
发帖数: 89
22
mark

【在 r****m 的大作中提到】
: 有朋友提到不知道怎么做DP的题目,分享一下自己的总结,希望对大家有帮助。
: 1. Distinct Subsequence (String S, String T)
: F(i, j) = F(i-1, j) , S[i] != T[j]
: F(i-1, j) + F(i-1, j-1) , S[i] ==T[j]
: 2. Longest Common Subsequence (String S1, String S2)
: F(i, j) = F(i-1, j-1) + 1, S[i] == T[j]
: Max{ F(i-1, j), F(i, j-1) }, S[i] !=T[j]
: LCS可以把空间复杂度O(n^2)减少到O(n),因为第n步的DP只 和前一步(第n-1步)的
: 最优子结果有关 F(n) = F(n-1)
: 3. Edit Distance (String S1, String S2)

g****y
发帖数: 15
23
mark
1 (共1页)
进入JobHunting版参与讨论
相关主题
Facebook interview 面经有人同看Longest Palindromic Substring 这道题么?
nlogn for longest increasing subsequenceFacebook电话面试总结
面试问题,最长翻转整数问题leetcode里的Palindrome partition问题
fb电面第一轮专家们,find the longest common substring of two strings
Bloomberg面试题最长回文串
Amazon Summer Intern Offer, 发面经Palindrome那题,OJ上通不过
Longest common string问题Palindrome那题,OJ上通不过
请教道算法题G四次电面面经
相关话题的讨论汇总
话题: s1话题: string话题: min话题: dp话题: s2