上一页 1 2 3 4 5 6 7 8 9 ··· 23 下一页
摘要: Manacher算法可以在O(n)的时间复杂度解决最长回文串问题。 字符串预处理 为了避免讨论奇偶性,首先对原始字符串进行预处理,也就是在每个字符间隙加上#,即将aab变为#a#a#b#。当指向#时,代表回文串长度为偶数,否则为奇数。 string t = "#"; for (char c : s) 阅读全文
posted @ 2021-04-21 19:23 tmpUser 阅读(126) 评论(0) 推荐(0) 编辑
摘要: KMP算法用于解决字符串匹配问题,时间复杂度为O(m + n)。设s为待匹配字符串,'p'为m为模版字符串。'm'为s的长度,n为p的长度) 运用前后缀性质减少重复比较 从上图可以看出,当b与f失配时,与朴素暴力解法中直接将p后移一位继续比较不同,KMP方法利用p中存在的最长公共前后缀aa省略了重复 阅读全文
posted @ 2021-04-21 10:28 tmpUser 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 问题 实现 strStr() 函数。 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。 说明: 当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很 阅读全文
posted @ 2021-04-20 23:31 tmpUser 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 问题 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。 示例 输入: s = "barfoothefoobarm 阅读全文
posted @ 2021-04-16 15:29 tmpUser 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 问题 给定两个字符串 s1 和 s2,写一个函数来判断 s2 是否包含 s1 的排列。 换句话说,第一个字符串的排列之一是第二个字符串的 子串 。 示例 输入: s1 = "ab" s2 = "eidbaooo" 输出: True 解释: s2 包含 s1 的排列之一 ("ba"). 解答1:固定长 阅读全文
posted @ 2021-04-16 11:34 tmpUser 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 问题 我们可以为二叉树 T 定义一个翻转操作,如下所示:选择任意节点,然后交换它的左子树和右子树。 只要经过一定次数的翻转操作后,能使 X 等于 Y,我们就称二叉树 X 翻转等价于二叉树 Y。 编写一个判断两个二叉树是否是翻转等价的函数。这些树由根节点 root1 和 root2 给出。 示例 输入 阅读全文
posted @ 2021-04-16 10:44 tmpUser 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 问题 使用下面描述的算法可以扰乱字符串 s 得到字符串 t : 如果字符串的长度为 1 ,算法停止 如果字符串的长度 > 1 ,执行下述步骤: 在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串 s ,则可以将其分成两个子字符串 x 和 y ,且满足 s = x + y 。 随机 阅读全文
posted @ 2021-04-16 10:18 tmpUser 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 问题 你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。 给定一个代表每个房屋存放金额的非负整数数组,计算你 阅读全文
posted @ 2021-04-15 11:19 tmpUser 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 问题 中位数是有序序列最中间的那个数。如果序列的长度是偶数,则没有最中间的数;此时中位数是最中间的两个数的平均数。 示例 输入: nums = [1,3,-1,-3,5,3,6,7], k = 3 输出: [1,-1,-1,3,5,6] 解答 class Solution { public: vec 阅读全文
posted @ 2021-04-14 17:49 tmpUser 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 问题 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 示例 输入: nums1 = [1,3], nums2 = [2] 输出: 2.00000 解释: 合并数组 = [1,2,3] ,中位数 2 解答 class So 阅读全文
posted @ 2021-04-08 16:49 tmpUser 阅读(35) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 23 下一页