8.15 dp srambleStr & minimumPathSum & editDistance

- to do

edit distance

  • naive
  • if (word1[i] == word2[j]) { return rec(word1, word2, i-1, j-1); garenteed to be opted?
    int rec(string& word1, string& word2, int i, int j) {
        if (i<0) return j+1;
        if (j<0) return i+1;
        if (word1[i] == word2[j]) {
            return rec(word1, word2, i-1, j-1);
        } else {
            return min(min(rec(word1, word2, i, j-1),
                           rec(word1, word2, i-1, j)),
                       rec(word1, word2, i-1, j-1))+1;
        }
        return -1; //should not reach
    }
    
    int minDistance(string word1, string word2) {
        return rec(word1, word2, word1.size()-1, word2.size()-1);
    }
  • what's wrong??

    int minDistance(string word1, string word2) {
        int m = word1.size(), n = word2.size(), i, j;
        int dp[m+2][n+2] = {0}; //dp[i][j] holds minDistance of word1[i-1~m-1] & word2[j-1~n-1] 
        for (i=m; i>=0; --i) {
            for (j=n; j>=0; --j) {
                if (!i) {
                    dp[i][j] = j + dp[1][j+1];
                } else if (!j) {
                    dp[i][j] = i + dp[i+1][1];
                } else if (word1[i-1]==word2[j-1]) {
                    dp[i][j] = dp[i+1][j+1];
                } else {
                    dp[i][j] = min(min(dp[i+1][j], 
                                       dp[i][j+1]), 
                                   dp[i+1][j+1])+1;
                }
                cout<<"dp["<<i<<"]["<<j<<"]: "<<dp[i][j]<<endl;
            }
            
        }
        return dp[0][0];
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,354评论 0 33
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,950评论 0 2
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,444评论 18 399
  • 朋友圈最近总是出现一个话题,来自各种对这个夏天的吐槽: 知道为什么今年这么热吗,因为开放二胎后太阳他妈,又生了一个...
    特立独行小粉丝阅读 1,562评论 1 0
  • 今天训练营结束了。 讲的内容是客情关系,但自己也有很多的不舍情绪。 通过学习,我们伙伴儿们能够创造更好的业绩。 感...
    霞姐_02f1阅读 2,498评论 0 0

友情链接更多精彩内容