1. 程式人生 > >第3章上機實踐報告

第3章上機實踐報告

演算法描述。  第一題:1,、先把所有的數存進一個數組裡。  2、最頂層的最大值從下一層的最大值的基礎上求得,以此類推。所以從最底層開始選擇,倒數第二層中選擇下一層相鄰數字的最大值相加原本的數字,在原陣列的基礎上修改每一個數字,自底向上,直到修改最頂層的數字為止。    第二題:初始化一個二維陣列,m[i][j]表示從第i個數到第j個數相加的結果,一邊加,一邊記錄最大的和。第三題:動態規劃的方式已經求得的值進行儲存,首要初始化一張表出來,就是一個二維陣列,N[A.length + 1][B.length + 1]

可以分為4類:
1. AA或者BB字元相等,N[i,j]N[i,j]等同於N[i,j]N[i,j]
2. 更改AA或者BB字元,N[i,j]N[i,j]等同於N[i−1,j−1]N[i−1,j−1]
3. 刪除AA字元或者增加BB字元,N[i,j]N[i,j]等同於N[i−1][j]+1N[i−1][j]+1
4. 刪除BB字元或者增加AA字元,N[i,j]N[i,j]等同於N[i][j−1]+1N[i][j−1]+1
最終N[i,j]N[i,j]的值就為min(情況1 || 情況2, 情況3, 情況4)的最小值,並且N[i,j]N[i,j]代表的是A[0−i]A[0−i]與B[0−j]B[0−j]的最小編輯距離。