我是靠谱客的博主 鲤鱼悟空,最近开发中收集的这篇文章主要介绍leetcode 面试题 01.05. 一次编辑 动态规划,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

面试题 01.05. 一次编辑

其实就是编辑距离 leetcode 72 编辑距离 动态规划

class Solution {
public:
    int min(int a, int b, int c) {
        int temp = a > b ? b : a;
        int result = c > temp ? temp : c;
        return result;
    }
    bool oneEditAway(string first, string second) {
        int m=first.length();
        int n=second.length();
        int dp[n+1];
        for(int i=0;i<=n;++i){
            dp[i]=i;  //刚开始dp[i]是从啥都没有变成word2前i个字符所需的步数
        }
        for(int j=1;j<=m;++j){    //分别遍历从有i个字符的word1变到word2的前i个字符所需步数dp[i]
            int tmp=dp[0];
            dp[0]=j;
            for(int i=1;i<=n;++i){
                int pre=tmp;
                tmp=dp[i];
                if(first[j-1]==second[i-1]){
                    dp[i]=pre;
                }else{
                    dp[i]=min(dp[i-1],pre,dp[i])+1;
                }
            }
        }
        return dp[n]<2;
    }
};

当然还有双指针可以做,但是,先一招鲜,学明白动态规划再说

最后

以上就是鲤鱼悟空为你收集整理的leetcode 面试题 01.05. 一次编辑 动态规划的全部内容,希望文章能够帮你解决leetcode 面试题 01.05. 一次编辑 动态规划所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部