yll521 / StructuresandAlgorithms-Code

重温数据结构与算法,代码实践

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

前言:

索引:

  • 链表
  • 栈队列
  • 散列表

linkedlist

链表

知识点

  • 链表的顺序表示及其基本操作实现
  • 单链表表示及其基本操作实现
  • 双链表...实现
  • 循环链表...实现

经典题

  • 判断链表是否有环
  • 反转链表
  • 两个有序链表合并
  • 求链表中间节点
  • 删除倒数第n个节点
  • 两个单链表的公共节点

leetcode建议练习题号:

业界应用

  • 如何实现LRU缓存淘汰算法

stack & queue

栈、队列

知识点 栈 队列 双端队列 优先队列:堆结构的实现

经典题

  • 括号匹配
  • 表达式求值(中缀表达式转后缀表达式)
  • 队列-层次遍历
  • 栈实现队列、队列实现栈
  • 双端队列-返回滑动窗口的最大值
  • 小顶堆-返回数据流的第k大元素

leetcode建议练习题号:

业界应用

  • 如何实现浏览器的前进后退功能

hash

散列表即键值对的集合,js里常用{ }、new Map()表示

知识点

  • 散列函数与散列表
  • 处理冲突的方法
    • 开放地址法
    • 拉链法
  • js里的Map、WeakMap

经典题

  • 有效字母异位词
  • two sum
  • three sum

leetcode建议练习题号:

业界应用

  • 哈希算法应用:安全加密、数据校验、唯一标识、散列函数
  • 哈希算法在分布式系统的应用:
  • 打造工业级水平的散列表
  • 散列表应用-布隆过滤器
  • 散列表应用思考
    • word的单词拼写检查功能
    • 将10万条URL访问日志的数据按照访问次数排序
    • 两个字符串数组,每个数组10万条字符串,如何快速找出两个数组中相同的字符串

tree

知识点

  • 树的基本概念(度、高度、完全二叉、满二叉)
  • 树的遍历(前序、后序、中序、层序)、根据遍历序列建树
  • 二叉搜索树BST
  • 并查集
  • 平衡二叉树AVL
  • 线段树
  • 树状数组
  • 哈夫曼树及其编码

经典题

  • 翻转二叉树
  • 二叉树的最大深度
  • 查找二叉搜索树的某个节点的前驱、后继节点
  • 验证二叉搜索树
  • 路径总和

leetcode建议练习题号:

业界应用

heap

知识点 构建大顶堆、小顶堆

经典题

  • 堆排序
  • 实时数据流的第k大元素
  • 合并k个有序链表

leetcode建议练习题号:

业界应用

recusionandconquer

递归与分治

知识点

经典题

leetcode建议练习题号:

业界应用

DFS & BFS

深度优先搜索、广度优先搜索

知识点

经典题

  • 二叉树的层序遍历
  • 二叉树的最大深度、最小深度
  • 生成有效的括号组合

leetcode建议练习题号:

业界应用

About

重温数据结构与算法,代码实践


Languages

Language:JavaScript 97.6%Language:HTML 2.4%