6.27 - hard - 17

72. Edit Distance

哎,這么簡單的題目都沒做出來,有點想錯了,一開始想成1維dp,然后就很不好做了。不過1維也是可以用滾動數(shù)組做的,很難理解就是了。有點做不動了,上午就到這吧。

class Solution(object):
    def minDistance1(self, word1, word2):
        """
        :type word1: str
        :type word2: str
        :rtype: int
        """
        # O(m*n) space
        l1, l2 = len(word1)+1, len(word2)+1
        dp = [[0 for _ in xrange(l2)] for _ in xrange(l1)]
        for i in xrange(l1):
            dp[i][0] = i
        for j in xrange(l2):
            dp[0][j] = j
        for i in xrange(1, l1):
            for j in xrange(1, l2):
                dp[i][j] = min(dp[i-1][j]+1, dp[i][j-1]+1, dp[i-1][j-1]+(word1[i-1]!=word2[j-1]))
        return dp[-1][-1]
    
    # O(n) space with rolling array            
    def minDistance(self, word1, word2):
        l1, l2 = len(word1)+1, len(word2)+1
        dp = [0 for _ in xrange(l2)]
        for j in xrange(l2):
            dp[j] = j
            
        for i in xrange(1, l1):
            prev = i # when word1 is i length it will need i step to match word2 which is "" for now
            for j in xrange(1, l2):
                if word1[i-1] == word2[j-1]:
                    cur = dp[j-1]
                else:
                    cur = min(dp[j-1], prev, dp[j]) + 1
                dp[j-1] = prev
                prev = cur
            dp[l2-1] = prev
        return dp[-1]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,912評論 0 33
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 18,388評論 2 36
  • 每天總結(jié)hard20題,三段總解法:1. 找個比較規(guī)范的答案,2.把每一行的思路寫下來,3.刪掉答案重寫一遍。不過...
    健時總向亂中忙閱讀 262評論 0 0
  • 動態(tài)規(guī)劃(Dynamic Programming) 本文包括: 動態(tài)規(guī)劃定義 狀態(tài)轉(zhuǎn)移方程 動態(tài)規(guī)劃算法步驟 最長...
    廖少少閱讀 3,650評論 0 18
  • 最近遇到好幾個這種類型的問題,主要就是給你兩個字符串,然后進(jìn)行字符串自己的匹配或者轉(zhuǎn)化,這類問題就是采用動態(tài)規(guī)劃,...
    futurehau閱讀 597評論 0 0

友情鏈接更多精彩內(nèi)容