![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 87
数据结构与算法
WishYouAFortune
骐骥一跃,不能十步;驽马十驾,功在不舍。
展开
-
【每日练题-leecode76. 最小覆盖子串】
时间复杂度:O(m + n)空间复杂度:O(k + min(m, k)),其中 k 是t中不同字符的数量,且 k <= n。在最坏情况下,空间复杂度为 O(m)。请注意,这里的分析假设字符集的大小(k)相对于 m 和 n 是较小的,这在实际应用中通常是成立的,因为字符集的大小通常是一个常数。如果字符集非常大,那么空间复杂度可能会接近 O(m) 或 O(n)。原创 2024-07-10 16:43:45 · 1065 阅读 · 0 评论 -
最大子数组和(普通数组)
给你一个整数数组nums,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。是数组中的一个连续部分。6连续子数组 [4,-1,2,1] 的和最大,为 6。nums = [1]123如果你已经实现复杂度为O(n)的解法,尝试使用更为精妙的求解。原创 2024-06-13 16:59:23 · 274 阅读 · 0 评论 -
滑动窗口最大值(子串-hard)
这种方法通过巧妙地利用双端队列的特性,能够高效地实时维护窗口内的最大值信息,从而在一次遍历中就得到所有窗口的最大值,达到了较好的时间和空间复杂度。的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的。滑动窗口的位置 最大值。滑动窗口每次只向右移动一位。原创 2024-06-13 16:45:40 · 326 阅读 · 0 评论 -
链表mark
接下来说一说链表的定义。链表节点的定义,很多同学在面试的时候都写不好。这是因为平时在刷leetcode的时候,链表的节点都默认定义好了,直接用就行了,所以同学们都没有注意到链表的节点是如何定义的。而在面试的时候,一旦要自己手写链表,就写的错漏百出。原创 2024-05-28 23:01:40 · 1002 阅读 · 0 评论 -
数组基础-笔记
数组是非常基础的数据结构,实现运用和理解是两回事数组是存放在连续内存空间上的相同类型的数据的集合可以方便的通过下表索引的方式获取到下标下对应的数据。举一个字符数组的例子:注意两点:数组下标从0开始数组内存空间的地址是连续的正因为数组的内存空间地址连续,索引删除或添加元素时,会移动其他元素地址例如删除下标为3的元素,需要对下表为3的元素后面的虽有元素都要做移动操作。如图所示那二位数组在内存的空间地址是连续的么不同编程语言的内存管理是不一样的。1.二分查找。原创 2024-05-27 11:44:51 · 792 阅读 · 0 评论 -
计算给定字符串中最长的回文字符串
题目分析:要求计算给定字符串中最长的回文字符串。原创 2024-05-08 19:20:03 · 186 阅读 · 3 评论 -
十大经典排序算法(动图演示)
但基数排序的性能比桶排序要略差,每一次关键字的桶分配都需要O(n)的时间复杂度,而且分配之后得到新的关键字序列又需要O(n)的时间复杂度。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。桶排序最好情况下使用线性时间O(n),桶排序的时间复杂度,取决与对各个桶之间数据进行排序的时间复杂度,因为其它部分的时间复杂度都为O(n)。很显然,桶划分的越小,各个桶之间的数据越少,排序所用的时间也会越少。原创 2024-05-07 17:34:42 · 632 阅读 · 0 评论