leetcode刷题笔记
whypdd
这个作者很懒,什么都没留下…
展开
-
无重复字符的最长子串问题思路解析
无重复字符的最长子串问题给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。如 输入 abcabcbb 输出 3本题难点在于对于遍历过程中输入的每一个字符,都要在候选子串中检查是否已经出现。同时,子串的性质叶要求必须是连续的字符序列。综合以上性质,采用了滑动窗口来解决问题。...原创 2019-09-29 09:12:24 · 342 阅读 · 0 评论 -
最长回文子串题解
最长回文子串给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。输入:babad 输出 bab分析:第一思路是暴力,O(n3) 肯定是不行的。这里要采用同样是动态规划的中心拓展思想:若当前子串[a,b]属于回文串,那么[a+1,b-1]一定也属于回文串。同时根据回文串的个数又分为两种情况:当回文串个数为奇数时,回文串中心即初试状态为1个字符,为偶数,...原创 2019-09-29 09:29:34 · 109 阅读 · 0 评论 -
正则表达式匹配
正则表达式匹配给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。-分析:leetcode点赞最高的题解讲的真的很好,学到很多 ps:我不会做,看会的,嘿嘿。这道题处理起来分为三...原创 2019-09-29 09:54:05 · 220 阅读 · 0 评论 -
盛最多水的容器
盛最多水的容器给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。题目有图:https://leetcode-cn.com/problems/container-with-most-water/方便理...原创 2019-09-29 10:06:08 · 70 阅读 · 0 评论 -
三数之和,最接近三数之和,四数之和题解
这三个题是同类型,可惜我是憨憨。双指针没有完全掌握。mark一下三数之和给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。最接近三数之和给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回...原创 2019-09-29 10:24:18 · 413 阅读 · 0 评论 -
下一个排列题解
下一个排序题解这道题没什么意思,但是字典序排列 规则我着实没记住,所以mark一下。字典序列的下一个的排列:找到最大的K 使得nums[K]<nums[K+1]找到[K+1:] 中最大的j使得nums[j]>nums[K],将他们交换。逆置[K+1:]完成若不存在K,则整体逆置。...原创 2019-09-29 10:33:33 · 366 阅读 · 0 评论 -
字符匹配算法-RK算法
字符匹配算法-RK算法R-K算法流程:思想是构造一个hash函数,字符串作为输入,hash值相同的字符串有极大可能匹配。检测流程基本和暴力匹配是一样的,但是为什么效率可以达到O(n)呢?n为待匹配字符串长度,因为在[i,i+m-1]检测失败后,进行[i+1,i+m]检测时,计算hash值可以直接通过前者的hash值计算得到,时间复杂度为O(1).所以最终复杂度可以达到O(n).该算法效率...原创 2019-10-08 22:48:34 · 435 阅读 · 0 评论 -
两数相除题解
两数相除题解给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。题解:这道题说实话没啥意思,主要是边界值的处理除数为INT_MIN,被除数为-1时,单纯int会发生数值位溢出,所以利用unsigned int 存储除数和被除数可解。在实现除法方面,采用指数逼近...原创 2019-10-09 23:06:42 · 224 阅读 · 0 评论 -
串联所有单词的字串题解
串联所有单词的字串题解有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:[0,9]题解:暴力就不考虑了,我第一种方法是,破产版的滑动窗口,每次滑动一个字符,用两个map<string,int&...原创 2019-10-09 23:32:45 · 173 阅读 · 0 评论