1. 程式人生 > >動態規劃——最長遞增子序列

動態規劃——最長遞增子序列

增強歸納假設後,在由i-1i的迴圈中,當a[i]b[k]時,k=k+1b[k]=a[i],否則k值不變。注意到當a[i]b[k]時,k值增加,b[k]的值為a[i]。那麼,當a[i]b[k]時,b[l;k]的值應該如何改變?如果a[i]<b[l],則顯然應該將b[l]的只改變為a[i],b[l]a[i]b[k]時,注意到陣列b是有序的,可以用二分搜尋演算法找到下標j,使得b[j-1]a[i]b[j]。此時,b[1;j-1]b[j+1;k]的值不變,b[j]的值改變為a[i]