
算法笔记
文章平均质量分 80
精英的英
智慧灵光映未来,编程世界任我裁。
数据洪流寻规律,算法迷宫巧破开。
创新思维无穷尽,机器语言亦情深。
AI征途志更远,共筑智能新时代。
展开
-
【算法笔记】LeetCode_138 随机链表的复制
通过遍历原链表,对于每个节点,先检查它是否已经在哈希表中,如果在则直接取出新节点,如果不在则创建新节点并添加到哈希表中。考虑到这里,我考虑使用哈希表来存储每个已创建的节点的原始地址和新地址,每次遍历的时候,查找当前节点和random节点是否已创建,是的话直接连接,否的话新建,然后添加进哈希表。指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。最后,将新节点按照原链表的顺序连接起来,形成新的链表。节点组成,其中每个新节点的值都设为其对应的原节点的值。原创 2024-03-25 19:23:04 · 872 阅读 · 0 评论 -
【算法笔记】LeetCode_30 串联所有单词的子串
这些情况下,滑动窗口方法的时间复杂度为O(n),其中n为字符串的长度,而遍历字符串方法的时间复杂度为O(n*m),其中m为单词列表的长度。这个问题最开始的想法是暴力破解,遍历字符串中的所有字符,以每个字符为起点,截取固定长度的字符串,然后对每个字符串判断是否符合要求,其最坏情况下的时间复杂度是O(m * n),m是字符串的长度,n是数组的元素数量。它是 words 中以 [“bar”,“foo”] 顺序排列的连接。[“bar”,“the”,“foo”] 顺序排列的连接。3,所以串联子串的长度必须为 9。原创 2024-03-08 10:45:20 · 913 阅读 · 0 评论 -
【算法笔记】LeetCode_15_三数之和
它们分别用于解决两数之和和三数之和的问题。下面是对代码的关键部分添加注释,并总结其方法、思想和可以改进的点。不同的三元组是 [-1,0,1] 和 [-1,-1,2]。**注意:**答案中不可以包含重复的三元组。注意,输出的顺序和三元组的顺序并不重要。唯一可能的三元组和不为 0。唯一可能的三元组和为 0。,判断是否存在三元组。原创 2024-03-06 11:20:00 · 657 阅读 · 0 评论 -
【算法笔记】LeetCode_3 无重复字符的最长字串
请你找出其中不含有重复字符的。因为无重复字符的最长子串是。因为无重复字符的最长子串是。因为无重复字符的最长子串是。请注意,你的答案必须是。,所以其长度为 3。,所以其长度为 1。,所以其长度为 3。原创 2024-03-07 08:15:53 · 326 阅读 · 0 评论 -
【算法笔记】 LeetCode_209 长度最小的子数组
使用滑动窗口法,双指针slow和fast分别指示窗口的左右边界,首先快指针开始右移,慢指针不动,同时求和sum开始累加,直到碰到sum>=target,开始考虑。,并返回其长度**。**如果不存在符合条件的子数组,返回。子序列的问题,慢指针尝试右移以缩小窗口大小。是该条件下的长度最小的子数组。找出该数组中满足其总和大于等于。原创 2024-03-06 15:49:47 · 438 阅读 · 0 评论