Skip to content

Reaper622/DataStructure-Algorithm-TS

Repository files navigation

DataStructure-Algorithm-TS

JavaScript DataStructure and Algorithm with TypeScript Questions on LeetCode

数据结构

  • 二叉树

    • 二叉树的实现
    • 对称二叉树 | LeetCode[101]
    • 二叉树镜像
    • 检测二叉平衡树
    • 二叉树的层次遍历
    • 根据先序遍历和中序遍历结果重建二叉树
    • 根据中序遍历和后序遍历结果重建二叉树
    • 路径总和
    • 二叉树展开为链表 | LeetCode [114]
  • 链表

    • 链表的实现
    • 链表的查询,插入,删除
    • 链表的正向遍历与反向遍历
    • 反转链表 | LeetCode [206]
    • 合并链表 | LeetCode [21]
    • 删除链表的倒数第N个节点 | LeetCode [19]
    • 链表节点交换 | LeetCode [24]
    • 分隔链表 | LeetCode [86]
    • 反转链表 II | LeetCode [206]
    • 重排链表 | LeetCode [143]
    • 栈的实现
    • 栈的基础操作
    • 栈的入序和出序序列匹配检测 | LeetCode [946]
  • 队列

    • 队列的实现
    • 队列的基础操作
    • 循环队列的实现和基础操作 | LeetCode [622]
    • 循环双端队列 | LeetCode [641]
    • 堆的实现
    • 堆的基础操作

算法

时间复杂度

一个算法的时间复杂度反映了程序运行从开始到结束所需要的时间。把算法中基本操作重复执行的此处作为算法的时间复杂度。

  • O(1): 常数复杂度
  • O(log n): 对数复杂度
  • O(n): 线性时间复杂度
  • O(n^2): 平方复杂度
  • O(n^3): 立方复杂度
  • O(2^n): 指数复杂度
  • O(!n): 阶乘复杂度

空间复杂度

空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需内存有预先估计。

一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。

算法目录

  • 排序

    • 插入排序
    • 冒泡排序
    • 选择排序
    • 快速排序
    • 归并排序
    • 堆排序
  • 递归

    • 斐波那契数列 | LeetCode [509]
    • 爬楼梯 | LeetCode [70]
    • Pow 「求x的n次幂」 | LeetCode [50]
  • 动态规划

    • 斐波那契数列 | LeetCode [509]
    • 泰波那契数列 | LeetCode [1137]
    • 杨辉三角 | LeetCode [118]

About

⛩数据结构和算法解析 | LeetCode 解题 | 剑指 Offer 面试题集

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •