![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
力扣刷题日志(中等)
记录自己的leetcode刷题日志
SCU-JJkinging
加油,leego must be dai
展开
-
KMP笔记
KMP算法:class Solution: def strStr(self, s: str, p: str) -> int: """ s为主串 p为模式串 如果t里有p,返回打头下标 O(m+n) O(m) """ nex = self.getNext(p) i = 0 j = 0 # 分别是s和p的指针 while i < len(s)原创 2022-03-17 15:52:25 · 392 阅读 · 0 评论 -
9.构造前缀树(中等)
现在有5个word,分别为by,by,hello,heat,the。所构成的TrieTree如图所示,其中包含一个根节点,值为空,跟几点所连接的是每个word的第一个字符,每个字符按照同样的方式生成与之连接的字符的TrieTree,在每个word的最末处,表示该word出现了几次。例如:“b”处为0,表示"b"这个单词没有出现过。“y”处为2,表示“by”这个单词出现了两次。...原创 2021-04-15 12:03:20 · 93 阅读 · 0 评论 -
8. 丑数 II(中等)
给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 或 5 的正整数。示例 1:输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2:输入:n = 1输出:1解释:1 通常被视为丑数。提示:1 <= n <= 1690来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ugly-number-i原创 2021-04-11 22:08:02 · 80 阅读 · 0 评论 -
7.两两交换链表中的节点(中等)
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode原创 2020-10-31 15:50:33 · 120 阅读 · 0 评论 -
6.三数之和(中等)
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。示例:给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]通过次数353,808 提交次数1,183,896PS:想不出来,参考的别人的题解排序 + 双指针本题的难点在于如何去除原创 2020-10-29 15:44:34 · 154 阅读 · 0 评论 -
5.电话号码的字母组合(中等、回溯)
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。回溯法class Solution: def letterCombinations(self, digits: str) -> Li原创 2020-10-28 16:37:29 · 164 阅读 · 0 评论 -
4.盛最多水的容器(中等)
给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例:输入:[1,8,6,2,5,4,8,3,7]输出:49PS:这道题没做出原创 2020-10-27 14:37:10 · 95 阅读 · 0 评论 -
3.字符串转整数(中等)
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。注意:假如该字符串中的第一个非空格字符不是一个有效整数字原创 2020-10-26 13:53:39 · 85 阅读 · 0 评论 -
2.删除链表的倒数第N个节点(中等)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?# Definition for singly-linked list.# class ListNode:# def __init__(self, val=0, next=Non原创 2020-10-26 13:02:17 · 119 阅读 · 0 评论 -
1.无重复字符的最长字串(中等)
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。原创 2020-10-25 14:43:50 · 67 阅读 · 0 评论