- 博客(15)
- 收藏
- 关注
原创 为什么要使用稀疏矩阵
是处理稀疏数据的黄金标准工具,适用于需要内存效率和快速行操作的场景。如果你正在处理类似用户-物品评分、文本特征或图数据,它几乎是必选项。如果用普通的稠密矩阵(如 NumPy 数组)存储,会浪费大量内存存储零值。在现实场景中,如推荐系统、自然语言处理、图网络等,数据矩阵通常非常稀疏。用户-物品评分矩阵(99% 的条目是零,因为用户只会对少量物品评分)文本的 TF-IDF 矩阵(大多数单词在文档中出现的次数为零)通过只存储非零值及其位置,大幅节省内存和计算资源。图的邻接矩阵(大多数节点之间没有直接连接。
2025-05-17 11:24:55
234
原创 滑动窗口的一些tips
while条件 就是从满足要求不断地变成不满足要求 这就是。无重复字符的最长字串,使用哈希表来记录字符出现的次数。while条件还可以从不满足条件到满足条件。只有满足了单调性,才能够使用双指针。
2025-05-14 11:10:37
206
原创 二维列表取交集
2.贪心合并:每次合并都是和结果最后一个区间的最后一个元素进行比较,确保高校。3.注意重叠条件:current[0] <= last[1]1.排序是前提,如果不排序无法保证相邻区间可能重叠。
2025-05-08 18:18:14
89
原创 冒泡排序Bubble sort
第二趟比较交换的时候,最大项就已经就位了,需要排序的数据减少为n-1,共有n-2对相邻数据需要进行比较。直到n-1躺完成后,最小项一定在列表首位,就无需处理了。第一趟比较交换,共有n-1对相邻数据进行比较。一旦经过最大项,则最大项会一路交换到最后一项。
2025-05-08 14:37:34
134
原创 回文词的判定
再从两端同时移除字符判断是否相同,直到deque中剩下了0个或者1个字符。List的下标-1可以作为deque的首端。用双端队列很容易就能解决“回文词”的问题。List的下标0可以作为deque的尾端。将需要判定的词从队尾加入deque。用python实现双端队列。注:可以采用List来实现。
2025-05-07 17:33:06
199
原创 数据结构与算法
字典和列表不同,字典是根据关键码查找数据项,而列表是根据位置index去查找的。字典的数据项其实并没有次序关系,可以直接通过索引的方式来添加元素。字典最常用的操作是取值get和赋值set,时间复杂度是o(1)pop() 从列表的末尾移除元素,o(1)pop(i) 从列表中部移除元素,o(n)字典的执行时间与规模无关,是常数,列表的copy时间复杂度是o(n)字典dict和列表list的操作。list和dict的in操作符。4种生成前n个整数列表的方法。而列表的执行时间随着规模加大。
2025-05-01 16:47:28
251
1
原创 初识递归(一)
递归是一种解决问题的方法,其精髓在于:将问题分解为规模更小的相同问题,持续分解,直到规模小到可以用非常简单直接的方式去解决。实际上是由一次次的加法来实现的,将规模较大的列表分解为规模较小并且固定的两个数的求和。2.递归算法必须能改变状态向基本结束条件演进-->减小问题规模。1.递归算法必须要有一个基本结束条件。数列的和=首个数+余下数列。递归程序是如何被执行的呢?3.递归算法必须调用自身。在算法过程中调用自身。
2025-05-01 12:29:51
137
原创 遍历-python
2.使用for循环,range()函数,len()函数,根据索引进行遍历。1.遍历循环使用for遍历列表元素。3.使用enumerate()函数。一、列表/元组/集合遍历方式。
2025-05-01 01:20:33
267
原创 python-集合-最长连续序列
复习:集合的本质:集合可以看作是一个简化的哈希表,只有key,但是没有value集合它的核心功能是s.add(x) 如果x不在集合中,则将x添加到集合ss.remove(x) 如果x在集合中,将其删除,如果不在集合中,程序报错s.clear() 清除集合中所有的元素x in s 如果x是集合s中的元素,结果为True,否则为Falsex not in s 如果x不是s的元素,结果为True,否则为Falses.index(x) 序列s中第一次出现元素x的位置。
2025-04-30 23:17:29
662
原创 哈希表—3.5
1.哈希表通过key和映射函数计算出对应的value2.在哈希表(Hash Table)的实现中,哈希函数的作用是将键(key)映射到一个固定的范围内,从而确定键对应的值(value)在哈希表中的存储位置。
2025-03-05 13:58:16
204
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅