某國為了防禦。。。
算了,簡單就是乙個長度為n的數列,求最長降序(允許相等)
序列是不連續的,在陣列中找乙個最長公升序看有幾項
思路 反向求降序,可以用輔助陣列,但這道題用乙個變數就可以做記錄
這裡給dp版本訓練思維
public
class lis_dp ;
int dp=new
int[arr.length];
for (int i = 0; i < dp.length; i++)
}dp[i]=max;//填dp表,dp表中每位的數字代表到當前位置的時候,最長增序的長度
}int cnt=1;
for (int i = 0; i < dp.length; i++)
}
最優解
public
class lis ;
int cur=integer.min_value;
int cnt=0;
for (int i = arr.length-1; i >= 0; i--)
}system.out.println(cnt);
}}
動態規劃 最長公共子串行
問題描述 我們稱序列z z1,z2,zk 是序列x x1,x2,xm 的子串行當且僅當存在嚴格上公升的序列 i1,i2,ik 使得對j 1,2,k,有xij zj。比如z a,b,f,c 是x a,b,c,f,b,c 的子串行。現在給出兩個序列x和y,你的任務是找到x和y的最大公共子串行,也就是說要...
動態規劃 最長公共子串行
兩個序列的最長公共子序 lcs longest common length 的 每個字元可以不連續,如x y 那麼它們的最長公共子串行為。這是乙個經典的動態規劃問題,著手點還是找到 最精髓的 狀態轉移方程 假設x,y兩個序列的前i,j個位置的最大子串行已經找到為r i j 自底往上 那麼x i 與y...
動態規劃 最長公共子串行
看完演算法導論關於這部分內容之後的總結 關於最長公共子串行問題 給定兩個子串行 x y 求x和y長度最長的公共子串行。解決方法 首先先要了解lcs的最優子結構,令x y 為兩個子串行,z 為x和y的任意lcs。1 如果 xm yn 則 zk xm yn 且 zk 1 是 xm 1 和 yn 1 的乙...