
leetcode
Mirilla
这个作者很懒,什么都没留下…
展开
-
leetcode1408 字符串 字符串匹配问题 做题笔记
链接:https://leetcode.cn/problems/string-matching-in-an-array/solutions/1723228/shu-zu-zhong-de-zi-fu-chuan-pi-pei-by-le-rpmt/"as" 是 "mass" 的子字符串,"hero" 是 "superhero" 的子字符串。1. 无法满足["maas","as"],["blue","bu"]等场景下的特殊性。"et" 和 "code" 都是 "leetcode" 的子字符串。原创 2024-06-03 20:32:16 · 256 阅读 · 0 评论 -
leetcode 151 字符串 反转字符串 做题笔记与收获
中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。1. 把string用空格拆开,把每个单词存入array。反转后的字符串中不能存在前导空格和尾随空格。中使用至少一个空格将字符串中的。之间用单个空格连接的结果字符串。1. 使用双指针反转整个字符串。是由非空格字符组成的字符串。1. 需要多余空间存array。3. 倒叙输出array。3. 单个单词再反转。原创 2024-06-03 16:48:42 · 206 阅读 · 0 评论 -
leetcode15 哈希表和双指针的权衡 三数之和 做题笔记和收获
1. 如何找:使用双层for循环遍历前两个数组的和a+b,同时用一个指针找到c=-a-b。问题:初始思路的解能通过307个样例,会在输入很大时超出时间限制(估计是三层循环的原因,但所有哈希表的解法都需要三层循环)3. 去重:因为已经从小到大排序,如果在遍历过程中nums[i] == nums[i-1],则跳过。2. 如何去重: 使用set(),利用数据结构set的无需不重复特性完成没有重复解。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。注意,输出的顺序和三元组的顺序并不重要。原创 2024-03-15 22:26:36 · 313 阅读 · 1 评论 -
leetcode454 哈希表 四数组相加 写题笔记与收获
应该选择:字典dict(),因为要保存两个数字——相加后的数值 和 该数值出现的次数。【解释说明dict():字典结构为:dict[key] = value。在此处 key = 相加数值,value = 数值出现次数】2. 对record1中的每一个值,在record2中查找是否存在(record1 + record2 = 0),如果存在则result+1。1. 将数组两两分开,将其中元素分别相加。原创 2024-03-12 18:34:35 · 200 阅读 · 1 评论 -
leetcode19 链表双指针妙用 删除链表中的第N个节点 做题笔记与收获
2. 不确定循环结束条件时,可以先写if语言,再改写成while。2. 遍历到第(len-N-1)个节点, 改变指针,指向(len-N+1)个节点。2. 当fast指向链表末尾(None)时,slow指向倒数第(N+1)个节点。3. 在这时,改变slow指向节点的指针,越过倒数第N个,则顺利删除。1. 快指针fast 与 慢指针slow 保持(N+1)的距离。1. 妙用双指针,可以不用遍历链表获取长度。给你一个链表,删除链表的倒数第。个结点,并且返回链表的头结点。原创 2024-03-06 17:49:32 · 330 阅读 · 1 评论 -
leetcode34 数组二分法 找数组中目标元素的起始和结束位置 写题笔记与收获
2. 写子函数,规范步骤。明确输出值,最后一起调整输出。(自己写的特殊条件不太有统筹规划性,容易错漏)1. 用循环中的值在循环中的自然变化控制循环结束,不用多余复杂条件--巧妙设计。收获:通过对比学习“代码随想录”官方代码,获得了以下启发。请你找出给定目标值在数组中的开始位置和结束位置。思路:用两个二分法分别找出左边界与右边界。给你一个按照非递减顺序排列的整数数组。你必须设计并实现时间复杂度为。如果数组中不存在目标值。我的代码(python)原创 2024-02-22 14:14:17 · 255 阅读 · 1 评论 -
leetcode904 数组滑动窗口 水果成篮 做题笔记与收获
你想要尽可能多地收集水果。你正在探访一家农场,农场从左到右种植了一排果树。如果从第一棵树开始采摘,则只能采摘 [0,1] 这两棵树。如果从第一棵树开始采摘,则只能采摘 [1,2] 这两棵树。1. 先用右边界找到满足条件的临界处,(数字变化处),可以采摘 [1,2,1,1,2] 这五棵树。2. 满足条件时统计区间长度,再移动左边界,可以采摘 [2,3,2,2] 这四棵树。可以采摘 [1,2,2] 这三棵树。3. 若不满足条件,再次移动右边界。,返回你可以收集的水果的。可以采摘全部 3 棵树。原创 2024-03-01 22:12:38 · 363 阅读 · 1 评论