力扣100道
文章平均质量分 64
数据结构和算法,算法题目笔记
宁子希
github地址https://github.com/1589326497?tab=repositories
展开
-
LeetCode 53 最大子数组和
动态规划是解决最大和的连续子数组问题的一种有效方法。通过将原问题分解成更小的子问题,并利用动态规划的思想,我们可以在O(n)的时间复杂度内解决该问题。原创 2024-03-08 00:18:19 · 338 阅读 · 0 评论 -
LeetCode 76 最小覆盖字串
最小窗口子字符串问题,使用C++的滑动窗口方法解决方案。这个算法有效地在给定字符串中找到包含另一个字符串所有字符的最小子字符串。滑动窗口技术能够在线性时间复杂度内解决这个问题,是实际应用的有效解决方案。最小窗口子字符串问题是一个经典的算法问题,我们的任务是在给定字符串中找到包含另一个字符串所有字符的最小子字符串。在本文中,我们将探讨使用C++的滑动窗口方法解决这个问题。我们将使用滑动窗口技术来高效地解决这个问题。,我们需要找到字符串。所有字符的最小窗口。原创 2024-03-01 23:26:06 · 275 阅读 · 0 评论 -
LeetCode 239 滑动窗口最大值
本文介绍了一种使用双端队列来解决滑动窗口最大值的问题的方法。通过维护一个单调递减的双端队列,可以在OnO(n)On的时间复杂度内解决该问题,其中nnn是数组的长度。这种方法在面对滑动窗口问题时具有较高的效率和可读性,是一种常见的解题思路。原创 2024-02-28 21:26:43 · 298 阅读 · 0 评论 -
LeetCode 560 和为 K 的子数组
本文介绍了使用哈希表解决数组中子数组和为特定值的问题。通过在遍历过程中记录累积和及其出现次数,我们可以在 O(n) 的时间复杂度内解决该问题,避免了暴力求解的高时间复杂度。这种方法在实际应用中具有较高的效率和可扩展性,可以解决更加复杂的子数组和问题。原创 2024-02-28 19:26:23 · 410 阅读 · 0 评论 -
LeetCode 438. 找到字符串中所有字母异位词
通过滑动窗口的方法,我们可以高效地解决寻找字符串中所有异位词的子串问题。该方法的时间复杂度为O(n),其中n是字符串s的长度。我们通过比较字符频次来判断字符串的异位词关系,从而快速找到所有符合条件的子串。原创 2024-02-28 00:17:03 · 773 阅读 · 0 评论 -
LeetCode 3:寻找最长不含重复字符的子串长度
通过滑动窗口的方法,我们可以在时间复杂度为 O(n) 的情况下解决这个问题。该方法利用了哈希集合的快速查找特性,使得算法具有高效性能和较好的扩展性,适用于处理大规模的字符串输入。原创 2024-02-27 22:41:11 · 505 阅读 · 0 评论 -
LeetCode 42 接雨水--单调栈
使用单调栈算法可以有效地解决接雨水问题,其时间复杂度为O(n),空间复杂度为O(n),其中n是柱子的数量。这种方法利用了栈的单调性质,使得我们可以在线性时间内解决这个问题,是一个高效且常用的解决方案。原创 2024-02-27 21:25:47 · 575 阅读 · 0 评论 -
LeetCode 038 每日温度——单调栈解法
在算法和数据结构中,单调栈是一种常见的技巧,它在解决一些数组或者字符串相关的问题中非常有用。其中,「每日气温」问题是一个经典的例子,它可以通过单调栈得到高效的解决方案。原创 2024-02-27 16:22:22 · 242 阅读 · 0 评论 -
LeetCode 15 三数之和
通过双指针法,我们可以在时间复杂度为 O(n^2) 的情况下解决三数之和问题。算法的关键在于排序数组以及巧妙地使用双指针来遍历数组,同时避免重复解的出现。这种方法在面对大规模数据时具有较高的效率和可扩展性,是解决类似问题的一种常见方法。原创 2024-02-26 22:44:10 · 472 阅读 · 0 评论 -
LeetCode 11 盛最多水的容器
本题利用双指针的方法,通过移动指针来逐步缩小搜索空间,同时根据木桶效应,我们移动较小高度的指针,从而确保每次移动都有可能获得更大的水量。这种算法的时间复杂度为 O(n),空间复杂度为 O(1),是一种高效的解决方法。原创 2024-02-26 10:55:48 · 400 阅读 · 0 评论 -
LeetCode283 移动0
在这篇博客中,我们将探讨如何通过不复制数组的情况下,在原地对数组进行操作,将所有零移动到数组的末尾。给定一个数组nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。原创 2024-02-26 09:51:29 · 485 阅读 · 0 评论 -
LeetCode128 最长连续序列
在这篇博客中,我们将讨论如何设计并实现一个时间复杂度为 O(n) 的算法来解决给定未排序整数数组的最长连续序列问题。给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。原创 2024-02-26 09:27:33 · 431 阅读 · 0 评论 -
LeetCode49 字母异位词分组
字母异位词分组问题可以通过使用哈希表来有效地解决。通过对每个字符串进行排序,并将排序后的字符串作为键,我们可以将具有相同字母组成的单词分组在一起。最终,我们将哈希表中的结果转换为答案列表,即得到了按要求分组的字母异位词列表。原创 2024-02-25 23:00:33 · 963 阅读 · 0 评论 -
LeetCode1 两数之和
通过使用哈希表,我们可以在线性时间复杂度内解决这个问题。该解决方案的时间复杂度为 O(n),其中 n 是数组nums的长度。哈希表的优势在于能够以接近常量时间的复杂度进行查找操作,从而提高了解决问题的效率。同时,该解决方案还考虑了算法的可读性和简洁性,使得代码易于理解和维护。希望通过本文的讲解,博友们能够更深入地理解两数之和问题,并能够灵活运用哈希表等数据结构解决类似的算法问题。原创 2024-02-25 16:41:18 · 362 阅读 · 0 评论