摘要: 一共两种情况,最后一位相不相同相同,则操作数不变。不相同,则有三种操作,增加一位,删除一位,替换一位,操作数加一同时,新位置操作数取三者最小值(三者均有各自的意义),遍历顺序从左到右然后从上到下初值情况就是最外边一圈含有空字符的情况,单独考虑空字符互相转化需要的操作数为另一个字符串的长度第一行到第二 阅读全文
posted @ 2020-03-23 17:41 Pyrokine 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 和《详细通俗的思路分析,多解法》解法相同,该文章已经写得很清晰了,就不再赘述,但是这个算法处理了很多不必要的位置。因为在最终匹配的解里面一定含有words[0],那么先用O(n)时间(可以用kmp)找到所有的可能位置,然后对该位置使用滑动窗口即可,耗时为链接中算法的1/4左右,尽管在leetcode 阅读全文
posted @ 2020-03-23 15:36 Pyrokine 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 好像大部分人都是写的递归解,递归总有他的局限性,那就尝试下迭代解,和36题一样,用set简单处理一下空白位,但没有做剪枝和判断最少备选数的位置,然后进行迭代思路为,每个空白位置存储三个数据,该点的坐标、该点的备选数(仅在处理该点时更新)和正在使用的备选数的序号,若存在备选数,则使用第一个,然后判断下 阅读全文
posted @ 2020-03-23 15:35 Pyrokine 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题目设置了每个元素都是单个数字,因此可以用拆开成10位的讨巧做法,但如果不限制大小,那么只能按余数处理,其他高赞解也写得很清楚了,详细算法可以看下其他解,大致思路如下:首先确定一点,在满足条件的情况下,答案长度越长,数字越大,即1000大于999,在长度相同的情况下,比较大小,因此先尽量地增加答案长 阅读全文
posted @ 2020-03-23 15:32 Pyrokine 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 做的时候非常困惑,为什么贪心能用,看了题解也没有解决困惑,于是自己思考了一下 代码就用官方题解的了,先贴个代码,看懂很容易,但是从评论来看,很容易产生困惑,为什么这个题可以用贪心,如果题目改成,只能跳到目标长度,那么还能贪心吗,答,不能 1 class Solution(object): 2 def 阅读全文
posted @ 2020-03-23 15:30 Pyrokine 阅读(218) 评论(0) 推荐(0) 编辑