和为K的子数组算法概述原题
题目要求为给定数组中有多少个子数组的加和为k。使用前缀和和哈希表,实际上也是把问题从“串”的维度降为“数”的维度,从“和为k的子数组”变为了两数之和,但是中间加了一层抽象,可以参考一下两数之和 。
时间复杂度为O(n):只遍历一次
空间复杂度为O(n):需要另外创建哈希表,最坏情况需要n的空间大小
JAVA12345678910111213141516171...
无重复字符的最长子串算法概述原题
题目要求是返回给出字符串的最长无重复子串长度。同样要用到双指针,但此时双指针的功能不在于 减少遍历 ,而在于 定位 ,也就是创建滑动窗口。
时间复杂度为O(n):看似有两个循环,但实际上对应滑动窗口两侧,滑动窗口只往 一个方向 动态变化
空间复杂度为O(∣Σ∣):字符集大小,因为要创建容器类对应字符串映射
JAVA1234567891011121314...
移动零算法概述原题
题目要求为将给定数组中的零值重新排序到数组末尾。用一个左指针指向非零值,一个右指针用于遍历数组,遇见零值时会将左指针停住,等到右指针找到非零值与其交换。
时间复杂度为O(n):只有右指针在遍历
空间复杂度为O(1):存放两个指针,但实际都指向参数数组中的值
JAVA12345678910111213141516171819202122class Solution &...
两数之和算法概述原题
两数之和是hot100中的一道简单题,要求从给出的数组中找到可以作为给出的目标值的两个加数的组合。不管是调用 java 中的 HashMap 的还是 c++ 中的 unordered_map 哪种容器类,还是c中的uthash的宏,这道题的核心都是插入与查找。除此之外,还需要注意的是,哈希映射的核心并不只是创建了一种新表通过算法使每个值都变得特殊且好找,而是通过反向插...
kaggle notebook github repo
这是一篇整合了新模型KAN的基础API的教程。KAN是一种基于Kolmogorov-Arnold theorem的新型神经网络模型,旨在替代传统的前馈神经网络MLP。KAN的创新点在于在原本线性方程的基础上加入了spline,并且通过spline的应用替代了原non-linearity激活函数,这样既节省了计算资源,并且在一定数量级的...