• 数据结构 - 队列

    队列是一种先进先出的一种数据结构。就像排队一样 利用数组实现。队列这里的边界实现,tt 表示队尾, 初始值为 -1,hh 表示队头, 初始值为 0。 tt > hh 表示 队列为空 从队尾添加数据就是q[++tt] = x 题目来源: https://www.acwing.com...
  • 数据结构 - 栈

    栈是一只先进后出的一种数据结构。 压入和弹出都是在栈顶操作,所以先进入的在底部,后进入的再栈顶部。利用数组很容易实现。 具体边界看个人习惯的实现, 这里实现的是: idx = 0 表示栈为空。 所以添加数据就是q[++idx] = x 题目来源: https://www.acwing....
  • 数据结构 - 双链表

    双链表是在单链表的基础上多了一个指针,可以直接找到某个节点的前一个值和后一个值。 这里还是用数组来实现。为了方便边界处理操作,初始化最左边的是0, 最右边的是1。然后在01之间进行增删改查的操作。 题目来源: https://www.acwing.com/problem/content/...
  • 数据结构 - 单链表

    单链表结构,数据就像一个链条一样存储。每个数据都有指向下一个值得指针。 链表的书写可以是利用指针,也可以是利用数组。利用指针书写,速度比较慢,这里利用数组进行链表的书写。 题目来源: https://www.acwing.com/activity/content/problem/conte...
  • 机器学习 - 04 基础两层神经网络

    PyTorch是一个基于Python的科学计算库,它有以下特点: 类似于NumPy,但是它可以使用GPU 可以用它定义深度学习模型,可以灵活地进行深度学习模型的训练和使用 Tensor Tensor类似于numpy的ndarray,唯一的区别是tensor可以在gpu上加速计算。 12fr...
  • 机器学习 - 03 FizzBuzz Game

    FizzBuzz是一个简单的小游戏。游戏规则如下:从1开始往上数数,当遇到3的倍数的时候,说fizz,当遇到5的倍数,说buzz,当遇到15的倍数,就说fizzbuzz,其他情况下则正常数数。 我们可以写一个简单的小程序来决定要返回正常数值还是fizz, buzz 或者 fizzbuzz。 1...
  • 机器学习 - 02 Regression 回归

    拟合曲线 创建一条曲线,利用神经网络进行拟合 数据的创建 torch.nn.Module 的基本使用 如何训练,如何进行反向传递 有哪些optimization 优化器 有哪些激励函数 有哪些loss function 偏差函数 loss function 如何进行使用的 12345fro...
  • 机器学习 - 01 人工神经网络 VS 生物神经网络

    > 人工神经网络 VS 生物神经网络 Artificial Neural Nets Vs Neural Nets 相同与差别: 都有神经元 但是人工神经网络是固定不变的。 在训练过程中 生物神经网络会产生新的神经元,通过新的神经元来记忆信息 人工神经网络不会产生新的神经原,人工神...
  • 算法 - Morris遍历

    Morris遍历是一种神级遍历方式,遍历一颗树做到时间复杂度$O(n)$ 空间复杂度是$O(1)$。基础的思路就是利用叶节点下面的空节点作为返回上级的指针。 基本思路: 当前节点cur 如果cur没有左孩子,那么直接滑向右孩子 如果cur有左孩子, 那么左孩子最右边的节点mostRight...
  • 算法 - KMP

    Kmp 算法比较重要。 是一个字符匹配算法, 做到时间复杂度是$O(n + m)$, 它是是对暴力算法的一个优化, 暴力算法的时间复杂度是$O(n * m)$ 暴力算法的思路: i, j 两个指针,i指向匹配串, j 指向模式串 i, j 两个指针,如果匹配相等,i, j 指针同时往下跳 如...