![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CodeTalk
文章平均质量分 52
RushmcRunRunRun
这个作者很懒,什么都没留下…
展开
-
459. 重复的子字符串(KMP算法)
459. 重复的子字符串优秀解法:KMP(n,n)fail数组定义:最长前后缀长度-1 如ababab为3 最长前后缀为4:abab(第一个) abab(第二个)初始值为什么为-1:让第一个if的now + 1 = 0 否则会少判断第一个字母怎么加速获得fail值:如果s[now + 1] == s[i] 即在最长前缀的后一个字母也和当前串下一个字母相同 那么当然最长前后缀长度加一如果不相等 那么仍可利用原来的最长前后缀我们当然不想把这个长度缩小太多 因为我们要找的是最原创 2021-09-20 12:23:54 · 288 阅读 · 0 评论 -
一步步将dfs回溯剪枝进行优化(LeetCode 79. 单词搜索)
一个极其普通的解法主要思想是找到可行的起始点 深度遍历搜索 保存当前的字符串如果匹配则继续否则剪枝class Solution { char[][] board; boolean res = false; int n; int m; boolean[][] visited; public boolean exist(char[][] board, String word) { this.board = board; n =原创 2021-08-18 12:40:00 · 292 阅读 · 2 评论 -
718. 最长重复子数组:滑动窗口解法注释
优秀解法:滑动窗口class Solution { public int findLength(int[] nums1, int[] nums2) { return nums1.length < nums2.length ? changeList(nums1,nums2) : changeList(nums2,nums1); } public int changeList(int[] nums1,int[] nums2){ int res.原创 2021-06-04 13:06:53 · 138 阅读 · 0 评论 -
3. 无重复字符的最长子串
3. 无重复字符的最长子串我的解法滑动窗口(操作字符) 时间O(n)注意点遇到重复字符时,将cur和res比较长度像ertezdf这种情况 遍历到第二个e时,中间的rt要被保留当遍历完毕,更新res代码class Solution { public int lengthOfLongestSubstring(String s) { StringBuilder cur = new StringBuilder(); St原创 2021-06-01 15:20:54 · 74 阅读 · 0 评论