通過leetcode學算法——動態(tài)規(guī)劃(dp)

先貼問題:

  1. Delete Operation for Two Strings
    Given two words word1 and word2, find the minimum number of steps required to make word1 and word2 the same, where in each step you can delete one character in either string.
    說白了就是找到兩個字符串非連續(xù)最大公共字符串滔蝉。如果對dp算法很熟悉的很快就能想到這個問題的解法,然而我并不是很熟悉噪生,所以用了一個很挫很慢的方法阵翎,個人理解應該是分治法逢并,很多步驟被重復算了很多次之剧。

寫的很搓,輕噴砍聊。
下面就要介紹一下簡單易懂的dp算法啦背稼,先上代碼(leetcode里大神寫的,我只是用golang重寫一遍)


思路很簡單辩恼,比如 word1=abcd,word2=obdce谓形。
用一個二維數組保存計算的值(代碼里多加了一行和一列置0方便計算)



比如比較word1的c和word2的c的時候灶伊,因為ab和obd的最大相同是1,所以這個位置上只需要dp[i-1][j-1]+1

動態(tài)規(guī)劃和分治區(qū)別:
動態(tài)規(guī)劃:它通常用于求解具有某種最優(yōu)性質的問題寒跳。在這類問題中聘萨,可能會有許多可行解。每一個解都對應于一個值童太,我們希望找到具有最優(yōu)值的解米辐。動態(tài)規(guī)劃算法與分治法類似,其基本思想也是將待求解問題分解成若干個子問題书释,先求解子問題翘贮,然后從這些子問題的解得到原問題的解。與分治法不同的是爆惧,適合于用動態(tài)規(guī)劃求解的問題狸页,經分解得到子問題往往不是互相獨立的。
分治法:若用分治法來解這類問題扯再,則分解得到的子問題數目太多芍耘,有些子問題被重復計算了很多次。如果我們能夠保存已解決的子問題的答案熄阻,而在需要時再找出已求得的答案斋竞,這樣就可以避免大量的重復計算,節(jié)省時間秃殉。我們可以用一個表來記錄所有已解的子問題的答案坝初。
注:不管該子問題以后是否被用到,只要它被計算過钾军,就將其結果填入表中脖卖。這就是動態(tài)規(guī)劃法的基本思路。

這一題算是讓我對動態(tài)規(guī)劃有一個更深的印象巧颈,故記錄一下畦木。以前雖然會寫,但是每次遇到問題都不會想不到去用砸泛,還是自己疏于練習十籍。
紙上得來終覺淺蛆封,絕知此事要躬行呀。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末勾栗,一起剝皮案震驚了整個濱河市惨篱,隨后出現的幾起案子,更是在濱河造成了極大的恐慌围俘,老刑警劉巖砸讳,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異界牡,居然都是意外死亡簿寂,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門宿亡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來常遂,“玉大人,你說我怎么就攤上這事挽荠】烁欤” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵圈匆,是天一觀的道長漠另。 經常有香客問我,道長跃赚,這世上最難降的妖魔是什么酗钞? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮来累,結果婚禮上砚作,老公的妹妹穿的比我還像新娘。我一直安慰自己嘹锁,他們只是感情好葫录,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著领猾,像睡著了一般米同。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上摔竿,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天面粮,我揣著相機與錄音,去河邊找鬼继低。 笑死熬苍,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播柴底,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼婿脸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了柄驻?” 一聲冷哼從身側響起狐树,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鸿脓,沒想到半個月后抑钟,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡野哭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年在塔,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虐拓。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡心俗,死狀恐怖傲武,靈堂內的尸體忽然破棺而出蓉驹,到底是詐尸還是另有隱情,我是刑警寧澤揪利,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布态兴,位于F島的核電站,受9級特大地震影響疟位,放射性物質發(fā)生泄漏瞻润。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一甜刻、第九天 我趴在偏房一處隱蔽的房頂上張望绍撞。 院中可真熱鬧,春花似錦得院、人聲如沸傻铣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽非洲。三九已至,卻和暖如春蜕径,著一層夾襖步出監(jiān)牢的瞬間两踏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工兜喻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梦染,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓朴皆,卻偏偏與公主長得像弓坞,于是被迫代替她去往敵國和親隧甚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容

  • 動態(tài)規(guī)劃(Dynamic Programming) 本文包括: 動態(tài)規(guī)劃定義 狀態(tài)轉移方程 動態(tài)規(guī)劃算法步驟 最長...
    廖少少閱讀 3,282評論 0 18
  • 動態(tài)規(guī)劃學習-無資料 理論解釋http://www.cnblogs.com/steven_oyj/archive/...
    RavenX閱讀 1,022評論 0 2
  • 分治方法 將問題劃分成互不相交的子問題 遞歸地求解子問題 將子問題的解組合起來 動態(tài)規(guī)劃(兩個要素:最優(yōu)子結構渡冻、子...
    superlj666閱讀 499評論 0 0
  • 多階段決策過程(multistep decision process)是指這樣一類特殊的活動過程戚扳,過程可以按時間順...
    碧影江白閱讀 2,399評論 1 6
  • 歸去來兮。 1.1 說明 本篇為《挑戰(zhàn)程序設計競賽(第2版)》[http://www.ituring.com.cn...
    尤汐Yogy閱讀 14,332評論 0 160