求兩個序列的最大子串行問題:
這個演算法也是《演算法導論》講
dp的例子,
講的是有兩個序列xn和
ym,假設
zk是他們的最大子列
可以證明:若
xn=ym
,則xn
必然等於zk(
easy)
若xn!=ym
,則zk
!=xn時,z
是xn-1和ym
的最大子列
或者zk!
=ym時,z是
xn和ym-1
的最大子列
(即:最後乙個如果不在
z的末尾,就可以移掉)
packagezbodo;
publicclasslcselse}
} publicvoidtest()
publicintgetresult(intxlen,intylen)
elseif(
x[xlen-1] ==
y[ylen-1])
else
} }
程式碎片 矩陣乘法優化 dp,遞迴
usingsystem usingsystem collections generic namespacesdproject privatevoidinitial this.mlist newlist martix array int m newint 5,5 publicvoidgetbestso...
LCS 遞迴與DP迭代
給定兩個字串,兩個字串的公共子串中最長的即為 最長公共子串 lcs給定兩個字元a 0,n b 0,m 遞迴實現 比較兩個字串的末尾字元,總共有3種情況 1.遞迴基 m 0或 n 0,其中乙個字元為空字元,直接返回空串即可。2.末字元 a n 1 b m 1 x 減而治之 lcs a 0,n 1 b ...
程式碎片 分油問題 bfs
這個問題是看演算法精華版時候看見的,人家的演算法看了很頭大,自己寫一遍後覺得清楚多了 using system using system.collections.generic using system.linq using system.text using system.windows.form...