LeetCode
眠不觉2020
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021.9.19 链表 || 160 相交链表
题目地址(160. 相交链表) 题目源地址 前置知识 1.HashSet 2.双指针 3.链表 思路 解法1:哈希表。第一次遍历链表A,用HashSet记录A的值(特性是不重复),第二次遍历链表B,用HashSet中存储的元素比对,若相同则是相同节点。若无相同的则返回NULL。 解法2:双指针。分别为链表A和链表B设置指针A和指针B,然后开始遍历链表,如果遍历完当前链表,则将指针指向另外一个链表的头部继续遍历,直至两个指针相遇。 最终两个指针分别走过的路径为: 指针A :a+c+b 指针B :b+c+a 明原创 2022-03-02 22:35:49 · 248 阅读 · 0 评论 -
2021.9.20 链表 || 142. 环形链表 II
题目地址及官方题解 题目描述 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 说明:不允许修改给定的链表。 进阶: 你是否可以使用 O(1) 空间解决此题? 思路 HashSet:利用hashset保存遍历的节点,当遇到相同的节点原创 2022-03-02 22:35:19 · 102 阅读 · 0 评论 -
2021.9.21 || 146. LRU 缓存机制
题目地址(146. LRU 缓存机制) 题解源地址 前置知识 双向链表 哈希表 思路 LRU 缓存机制可以通过哈希表辅以双向链表实现,我们用一个哈希表和一个双向链表维护所有在缓存中的键值对。 双向链表按照被使用的顺序存储了这些键值对,靠近头部的键值对是最近使用的,而靠近尾部的键值对是最久未使用的。 哈希表即为普通的哈希映射(HashMap),通过缓存数据的键映射到其在双向链表中的位置。 这样以来,我们首先使用哈希表进行定位,找出缓存项在双向链表中的位置,随后将其移动到双向链表的头部,即可在 O(1)O(原创 2022-03-02 22:34:45 · 91 阅读 · 0 评论 -
2022/1/18 链表 || 876. 链表的中间结点
题目地址(876. 链表的中间结点<a id=“solution_btn_876” 题解https://labuladong.gitee.io/plugin-v3/?qno=876&target=gitee&_ 原题链接 https://leetcode-cn.com/problems/middle-of-the-linked-list/ 题目描述 给定一个头结点为 head 的非空单链表,返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。原创 2022-03-02 22:34:01 · 83 阅读 · 0 评论 -
2022/1/18 链表 || 203. 移除链表元素
题目地址(203. 移除链表元素) https://leetcode-cn.com/problems/remove-linked-list-elements/ 题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例 1: 输入:head = [1,2,6,3,4,5,6], val = 6 输出:[1,2,3,4,5] 示例 2: 输入:head = [], val = 1 输出:原创 2022-03-02 22:33:27 · 274 阅读 · 0 评论 -
2022/1/18 链表 || 21. 合并两个有序链表
题目地址(21. 合并两个有序链表 labuladong 题解 原题链接https://leetcode-cn.com/problems/merge-two-sorted-lists/ 题目描述 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 = [], l2 = [] 输出:[] 示例原创 2022-03-02 22:32:58 · 113 阅读 · 0 评论 -
2022/1/18 链表 || 23. 合并K个升序链表
题目地址(23. 合并K个升序链表 拉不拉东题解 原题链接 https://leetcode-cn.com/problems/merge-k-sorted-lists/ 题目描述 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 示例 1: 输入:lists = [[1,4,5],[1,3,4],[2,6]] 输出:[1,1,2,3,4,4,5,6] 解释:链表数组如下: [ 1->4->5, 1->3-&g原创 2022-03-02 22:32:24 · 114 阅读 · 0 评论 -
2022/1/18 链表 || 24. 两两交换链表中的节点
题目地址(24. 两两交换链表中的节点) https://leetcode-cn.com/problems/swap-nodes-in-pairs/ 题目描述 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 示例 1: 输入:head = [1,2,3,4] 输出:[2,1,4,3] 示例 2: 输入:head = [] 输出:[] 示例 3: 输入:head = [1] 输出:[1]原创 2022-03-02 22:31:48 · 562 阅读 · 0 评论 -
2022/1/18 链表 || 206.翻转链表(迭代和递归)
题目地址 反转链表 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head = [1,2] 输出:[2,1] 示例 3: 输入:head = [] 输出:[] 提示: 链表中节点的数目范围是 [0, 5000] -5000 <= Node.val <= 5000 进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法原创 2022-03-01 20:27:03 · 81 阅读 · 0 评论 -
2022/1/18 链表|| 19. 删除链表的倒数第 N 个结点
题目地址 删除链表的倒数第 N 个结点 https://labuladong.gitee.io/plugin-v3/?qno=19&target=gitee&labuladong 题解 LeetCode原题 https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/ 题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入原创 2022-03-01 20:21:52 · 96 阅读 · 0 评论 -
2022/1/19 哈希表 || 242. 有效的字母异位词
题目地址(242. 有效的字母异位词) https://leetcode-cn.com/problems/valid-anagram/ 题目描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 示例 1: 输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s原创 2022-03-01 20:21:18 · 546 阅读 · 0 评论 -
2022/1/19 链表 || 25. K 个一组翻转链表
题目地址(25. K 个一组翻转链表 labuladong题解 https://labuladong.gitee.io/plugin-v3/?qno=25& 原题链接 https://leetcode-cn.com/problems/reverse-nodes-in-k-group/ 题目描述 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。 k 是一个正整数,它的值小于或等于链表的长度。 如果节点总数不是 k 的整数倍,那原创 2022-03-01 20:20:47 · 84 阅读 · 0 评论 -
2022/1/19 链表 || 86. 分隔链表
题目地址(86. 分隔链表) https://leetcode-cn.com/problems/partition-list/ 题目描述 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你应当 保留 两个分区中每个节点的初始相对位置。 示例 1: 输入:head = [1,4,3,2,5,2], x = 3 输出:[1,2,2,4,3,5] 示例 2: 输入:head = [2,1], x原创 2022-03-01 20:20:13 · 104 阅读 · 0 评论 -
2022/1/19 链表 || 92. 反转链表 II
题目地址(92. 反转链表 II 拉不拉东题解 https://labuladong.gitee.io/plugin-v3/?qno=92&target=gitee& 原题链接 https://leetcode-cn.com/problems/reverse-linked-list-ii/ 题目描述 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right原创 2022-03-01 20:19:44 · 318 阅读 · 0 评论 -
2022/1/19 链表 || 234. 回文链表
题目地址(234. 回文链表) labuladong题解 https://labuladong.gitee.io/plugin-v3/?qno=234&target=gitee& 原题链接 https://leetcode-cn.com/problems/palindrome-linked-list/ 题目描述 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head原创 2022-03-01 20:19:08 · 101 阅读 · 0 评论 -
2022/1/20 哈希表 || 49. 字母异位词分组
题目地址 49. 字母异位词分组 原题链接 https://leetcode-cn.com/problems/group-anagrams/ 题解 https://leetcode-cn.com/problems/group-anagrams/solution/yuan-lai-hui-luo-ji-qing-xi-jian-dan-yi-rj6x3/ 题目描述 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单原创 2022-03-01 20:18:18 · 419 阅读 · 0 评论 -
2022/1/20 哈希表 || 349. 两个数组的交集题目地址(349. 两个数组的交集)
题目地址(349. 两个数组的交集) https://leetcode-cn.com/problems/intersection-of-two-arrays/ 题目描述 给定两个数组,编写一个函数来计算它们的交集。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 说明: 输出结果中的每个元素一定是唯一的。转载 2022-02-26 18:35:45 · 94 阅读 · 0 评论 -
2022/1/20 哈希表 || 383. 赎金信)
题目地址(383. 赎金信) 原题链接 https://leetcode-cn.com/problems/ransom-note/ 题目描述 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1: 输入:ransomNote = "a", magazine = "b"原创 2022-02-26 18:34:59 · 522 阅读 · 0 评论 -
2022/1/20 哈希表 滑动窗口双指针|| 438. 找到字符串中所有字母异位词
题目地址(438. 找到字符串中所有字母异位词 labuladong题解 https://labuladong.gitee.io/plugin-v3/?qno=438& 原题链接 https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/ 题目描述 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑原创 2022-02-26 18:34:17 · 270 阅读 · 0 评论 -
2022/1/21 哈希表 || 202. 快乐数)
题目地址(202. 快乐数) https://leetcode-cn.com/problems/happy-number/ 题目描述 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。 如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 true ;不是,则返回 false 。 示例 1: 输入:n原创 2022-02-26 18:33:31 · 114 阅读 · 0 评论 -
2022/1/21 哈希表 || 1. 两数之和
题目地址(1. 两数之和 https://labuladong.gitee.io/plugin-v3/?qno=1&target=gitee& https://leetcode-cn.com/problems/two-sum/ 题目描述 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以原创 2022-02-26 18:33:02 · 109 阅读 · 0 评论 -
2022/1/21 哈希表 || 350. 两个数组的交集 II
题目地址(350. 两个数组的交集 II) https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/ 题目描述 给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输原创 2022-02-26 18:32:05 · 415 阅读 · 0 评论 -
2022/1/21 哈希表双指针 || 18. 四数之和
题目地址(4sum/">18. 四数之和 https://labuladong.gitee.io/plugin-v3/?qno=18&target=gitee& https://leetcode-cn.com/problems/4sum/ 题目描述 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]]&nbs原创 2022-02-26 18:31:05 · 361 阅读 · 0 评论 -
2022/1/21哈希表双指针 || 15. 三数之和
题目地址(15. 三数之和) (https://labuladong.gitee.io/plugin-v3/?qno=15&target=gitee&_ https://leetcode-cn.com/problems/3sum/ 题目描述 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复原创 2022-02-26 18:30:20 · 234 阅读 · 0 评论 -
2022/1/28 || 字符串 344. 反转字符串)
题目地址(344. 反转字符串) 题解 https://labuladong.gitee.io/plugin-v3/?qno=344&target=gitee& https://programmercarl.com/0344.反转字符串.html#其他语言版本 原题链接 https://leetcode-cn.com/problems/reverse-string/ 题目描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数原创 2022-02-26 18:29:35 · 96 阅读 · 0 评论 -
2022/1/28 字符串 || 541. 反转字符串 II
题目地址(541. 反转字符串 II) https://leetcode-cn.com/problems/reverse-string-ii/ 题目描述 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例 1: 输入:s = "abcdefg", k = 2 输出:"bacdf原创 2022-02-26 18:28:54 · 95 阅读 · 0 评论 -
2022/1/28 字符串 双指针 || 05. 替换空格
题目地址(05. 替换空格) https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof/ 题目描述 请实现一个函数,把字符串 s 中的每个空格替换成"%20"。 示例 1: 输入:s = "We are happy." 输出:"We%20are%20happy." 限制: 0 <= s 的长度 <= 10000 前置知识 公司 暂无 思路 关键点 代码 语言支持:Java Java C原创 2022-02-24 19:57:15 · 92 阅读 · 0 评论
分享