/algo

算法|课程|技能|知识|数学

Primary LanguageMarkdownCreative Commons Attribution Share Alike 4.0 InternationalCC-BY-SA-4.0

《自学主义》

今天学习的人

是未来之星
是国家「栋」梁
是自然界的丛林之王
是俗语里的下凡仙子
是粤语里的巴鸠撚闭
是成语里面的学富五车
是武侠小说里的人中龙
是都市小说里的城市之光
是吾日三省吾身的自律者
是相亲节目里面的心动嘉宾
是世间所有丑与恶的唾弃者
是世间所有美与好的创造者

Contents

Chapter-1 Algorithm

  • 前述 刷题经验 C++调试模版 常见报错
  • 数据结构 🧾例题清单
  • 算法基础 🧾例题清单
    • 排序 选择O(n^2) 冒泡O(n^2) 插入O(n^2) 计数O(n) 桶O(n) 快速O(nlogn)「未完工」 归并O(nlogn) 外部排序「未完工」 Hard
    • 二分法 不可套模版 二段性 寻找一个数 lower_bound upper_bound O(logn) 三分 Hard+
    • 双指针 快慢双指针 左右双指针 前后双指针 指向各自集合的双指针 Floyd判圈算法 时O(n) 空O(1) Medium
    • 滑动窗口 单调性 窗口数据结构 右边届入窗 左边届收缩 延时删除 采集答案 步长 起始位置 Medium
    • 前缀和 相减 哈希表 二维前缀和 前缀和**
    • 差分 两端操作 操作区间从O(k)降至O(1) 二维差分
    • 贪心 排序预处理 区间调度问题 跳跃问题 环形贪心 单调栈 Hard
    • 位运算 >>i逐位考察 异或 奇偶 除2 乘2 2的n次方 求中值 平均数 交换值 加法 1个数 滚动数组 状态压缩
    • 分治 分解 -> 解决 -> 合并
    • 模拟
  • 动态规划 🧾例题清单
    • 动态规划基础 三要素(重复子问题、最优子结构、动态转移方程) 斐波那契数列 凑零钱问题
    • 记忆化搜索 具备最优子结构 具备重叠子问题 memo记录子问题 子问题构成
    • 线性 DP 以i结尾的方案数 [0,1]范围内的最优解 打家劫舍 路径问题
    • 背包 DP 01背包 完全背包 多重背包 混合背包 分组背包 多维背包 树形背包
    • 序列 DP 无后效性 最长上升子序列(LIS) 最长公共子序列(LCS) 最大子数组和 LCS和LIS相互转化
    • 区间 DP f(l,r)=max(f(l,k), f(k+1,r))+cost k in [l,r] 遍历方法 初始化(dp[i][i]=1) 返回(dp[0][i]) 回文问题 时O(n^2)
    • 树形 DP「hold on」 后序遍历 打家劫舍III
    • 状态压缩 DP 位运算 state = (1 << num) | state ((state >> num) & 1) == 0 n<15
    • 数位 DP「hold on」
    • 股票问题 状态机DP
  • 图论「未完工」 🧾例题清单
  • 数学「未完工」 🧾例题清单 倍增 快速幂 求余
  • 系列题目 🧾例题清单 括号问题 接雨水问题

Chapter-2 Course

Chapter-3 Skill

  • ASM
    • RISC-V riscv asm manual 简介 通用寄存器和指令 扩展寄存器和指令 五级流水线 硬件模块 译码模块 ALU模块(执行计算) branch模块(条件跳转) load/store(访存) CSR读写控制
  • C「未完工」
    • C语言内存 虚拟内存 内存对齐 内存分页 MMU 内存模型 内核模式 用户模式 动态内存分配 内存池 野指针 内存泄漏
  • C++
    • 基础知识 GCC 数据类型 条件 循环 运算符 函数 char string 数组 指针 shared_ptr 引用 struct namespace 头文件 链接库 异常处理 输入输出流 文件操作 多文件编程
    • 面向对象 类和对象 继承和派生 多态与虚函数 运算符重载 模版和范型
    • 标准模版库 vector deque multimap multiset unordered_map unordered_set queue priority_queue algorithm
  • Golang
  • Python str list set tuple dict defaultdict deque bisect heapq SortedList __lt__ CPython架构 python为什么慢
  • 开发软件 工具 网站 vscode git vim gdb gcc tmux
  • 常用 CLI docker k8s ceph
  • Markdown
  • LaTeX
    • 数学符号 运算符 关系符 定界符 箭头 希腊字母 常用符号 重音符
    • 公式格式 求和 分数 大括号 等号对齐
  • Mermaid 流程图 时序图 甘特图 类图 状态图 饼图 用户体验旅程图

Chapter-4 Knowledge

  • IC design fabrication package EDA FPGA Verilog
  • 计算机组成
    • 大纲 程序是如何在计算机里跑起来的
    • 计算机系统概述 软硬件分类及发展 冯•诺依曼结构 工作过程 性能指标
    • 数据的表示和运算 数制 定点数 浮点数 算术逻辑单元
    • 存储系统 分类 性能指标 层次化结构 SRAM(cache) DRAM(内存) ROM(闪存、固态) MM组成和使用 Cache 虚拟存储器
    • 指令系统 指令(操作码+地址码) 指令寻址 数据寻址 指令集 CISC RISC
    • **处理器 CPU(运算器+控制器) 指令执行 数据通路 硬布线控制器 微程序控制器 指令流水线
    • 总线 片内、系统、通信总线 性能指标 总线仲裁 传输和定时 总线标准
    • 输入输出系统 外部设备 IO接口 IO方式(查询、中断、DMA)
  • 操作系统
    • 计算机系统概述 目的(管理、调度软硬资源、提供接口) 特征(并发、共享、虚拟、异步) 分类 运行环境(内核态、用户态) 中断 系统调用
    • 进程管理 进程(程序段、数据段、进程控制块) 目的(并发、共享) 进程通信 线程(ID、计数器、寄存器集合) 目的(减少开销) 实现方式(用户级、内核级) 处理机调度 进程同步 互斥 死锁 饥饿
    • 进程 & 线程 & 协程 时间角度 资源角度
    • 内存管理 目的(并发) 覆盖与交换 连续分配 非连续分配(分页存储) 分段存储 虚拟内存 局部性原理(时间、空间)
    • 文件管理 文件结构 目录结构 共享 保护 文件系统结构 目录实现 文件实现 磁盘(结构、调度、管理)
    • 输入输出管理 IO设备 IO控制方式 IO层次 设备分配、回收 Cache(缓存) Buffer(缓冲区)
  • 计算机网络
    • 计算机网络体系结构 组成 功能 分类 性能指标 OSI模型(7层) TCP/IP模型(4层) 5层协议体系 报文、包、帧等概念
    • 物理层 层一 传输比特流 数字信道(基带信号) 模拟信道(宽带信号) 奈奎斯特定理(码元极限传输速率) 香农定理(数据极限传输速率) 编码与调制PSK 电路、报文、分组交换 数据报、虚电路服务 传输介质 中继器 集线器
    • 数据链路层 层二(mac层) 数据逻辑上无差错 链路管理 组帧 差错控制 流量控制(滑窗) 介质访问控制(多路复用、随机访问CSMA) 局域网(以太网) IEEE 802.3/11 网卡(MAC地址) 广域网(交换机+链路) 网桥 以太网交换机
    • 网络层 层三(IP层) 功能(异构互联、分组转发、拥塞控制) 路由算法 IPv4 IP数据报 IP地址 子网 IPv6 路由协议 IP组播 移动IP 路由器
    • 传输层 功能(进程间通信) 端口 socket(嵌套字) UDP(无连接) TCP(连接) 报文段 TCP建立连接(三次挥手) TCP释放连接(四次握手) 可靠传输 流量控制 拥塞控制
    • 应用层 网络应用模型(C/S、P2P) DNS FTP 电子邮件(SMTP、POP3/IMAP) 万维网(HTTP) Cookie
    • 5G 网络架构 场景 网络架构 接口 协议栈 核心网 接入网 组网 层二(mac数据面) 层三(mac控制面)
  • 数据 & 存储
  • 容器技术

Chapter-5 Math

Manuscript written in 2016, opened again in 2022

Usage

Generate SUMMARY.md for gitbook:

$ book sm

Statement

学习只能依靠自己的积累,其他所有的材料都只是参考。此仓库,也仅作为自己学习时的笔记。

如果涉及到任何版权行为,请联系我,我将删除内容。

Publish https://dowalle.gitbook.io/algo/

Reference oi-wiki | leetcode | codeforces | bilibili | luogu | c-biancheng | geeksforgeeks | draveness | 宫水三叶 | CS自学指南

License CC-BY-SA-4.0 License

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


Thanks Your Star