# DataStructure-Algorithm-TS
JavaScript DataStructure and Algorithm with TypeScript
Questions on LeetCode
在线阅读地址: [数据结构和算法](https://reaperlee.cn/ds-al/)
## 数据结构
- [二叉树](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/BinaryTree.md)
- 二叉树的实现
- 对称二叉树 | LeetCode[101]
- 二叉树镜像 | 剑指Offer [19]
- 检测二叉平衡树
- 二叉树的层次遍历 | 剑指Offer [23]
- 根据先序遍历和中序遍历结果重建二叉树
- 根据中序遍历和后序遍历结果重建二叉树
- 路径总和 | 剑指Offer [25]
- 二叉树展开为链表 | LeetCode [114]
- 判断一个二叉树是否为另一个二叉树的子树 | LeetCode [572] | 剑指Offer [18]
- 二叉搜索树的后序遍历序列 | 剑指Offer[24]
- [链表](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/LinkList.md)
- 链表的实现
- 链表的查询,插入,删除
- 链表的正向遍历与反向遍历
- 反转链表 | LeetCode [206]
- 合并链表 | LeetCode [21]
- 删除链表的倒数第N个结点 | LeetCode [19] | 剑指Offer [15]
- 链表结点交换 | LeetCode [24]
- 分隔链表 | LeetCode [86]
- 反转链表 II | LeetCode [206]
- 重排链表 | LeetCode [143]
- 链表的中间结点 | LeetCode [876]
- 两个链表的第一个公共结点 | 剑指Offer [37]
- 两数相加 | LeetCode [2]
- 链表排序 | LeetCode [148]
- 合并K个有序链表 | LeetCode [23]
- [栈](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/Stack.md)
- 栈的实现
- 栈的基础操作
- 栈的入序和出序序列匹配检测 | LeetCode [946] | 剑指Offer [22]
- 最小栈 | LeetCode[155]
- 有效的括号 | LeetCode [20]
- [队列](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/Queue.md)
- 队列的实现
- 队列的基础操作
- 循环队列的实现和基础操作 | LeetCode [622]
- 循环双端队列 | LeetCode [641]
- [堆](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/Heap.md)
- 堆的实现
- 堆的基础操作
- [数组](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/Array.md)
- 和为Sum的两个数字 | 剑指Offer [41]
- 和为Sum的连续整数序列 | 剑指Offer [41]
- 两数之和 | LeetCode [1]
- 三数之和 | LeetCode [15]
- 四数之和 | LeetCode [18]
- 顺时针打印矩阵 | 剑指Offer [20]
- 对角线遍历矩阵 | LeetCode [498]
- 数组中出现次数超过数组一半的数字 | 剑指Offer [29]
- 连续子数组的最大和 | 剑指Offer [31]
- 反转字符串 | LeetCode [344]
- 按奇偶排序数组 | LeetCode [905] | 剑指Offer [14]
- 扑克牌的顺子 | 剑指Offer [44]
- 岛屿的最大面积 | LeetCode [695]
- 朋友圈 | LeetCode [547]
- 合并区间 | LeetCode [56]
- 接雨水 | LeetCode [42]
- 寻找两个有序数组的中位数 | LeetCode[4]
- 最接近的三数之和 | LeetCode [16]
- 删除排序数组中的重复项 | LeetCode [26]
- 盛最多水的容器 | LeetCode [11]
- [字符串](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/String.md)
- 最长公共前缀 | LeetCode [14]
- 计数二进制子串 | LeetCode [696]
- 二进制求和 | LeetCode [67]
- 无重复字符的最长子串 | LeetCode [3]
- 字符串的排列 | LeetCode [567]
- 字符串相加 | LeetCode [415]
- 字符串相乘 | LeetCode [43]
- 复原IP地址 | LeetCode [93]
- 最长回文子串 | LeetCode [5]
- [LRU缓存结构](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/ds/LRUCache.md)
- LRUCache | LeetCode [146]
## 算法
#### 时间复杂度
> 一个算法的时间复杂度反映了程序运行从开始到结束所需要的时间。把算法中基本操作重复执行的此处作为算法的时间复杂度。
- `O(1)`: 常数复杂度
- `O(log n)`: 对数复杂度
- `O(n)`: 线性时间复杂度
- `O(n^2)`: 平方复杂度
- `O(n^3)`: 立方复杂度
- `O(2^n)`: 指数复杂度
- `O(!n)`: 阶乘复杂度
#### 空间复杂度
> 空间复杂度是指运行完一个程序所需内存的大小。利用程序的空间复杂度,可以对程序的运行所需内存有预先估计。
一个程序执行时除了需要存储空间和存储本身所使用的指令、常数、变量和输入数据外,还需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。
### 算法目录
- [排序](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/Sort.md)
- 插入排序
- 冒泡排序
- 选择排序
- 快速排序
- 归并排序
- 堆排序
- [递归](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/Recursion.md)
- 斐波那契数列 | LeetCode [509]
- 爬楼梯 | LeetCode [70]
- Pow 「求x的n次幂」 | LeetCode [50]
- 翻转整数变为字符串 | Bilibili 面试编程题
- [动态规划](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/DynamicProgramming.md)
- 斐波那契数列 | LeetCode [509]
- 泰波那契数列 | LeetCode [1137]
- 杨辉三角 | LeetCode [118]
- 打家劫舍 | LeetCode [198]
- 打家劫舍 II | LeetCode [213]
- 第N个丑数 | LeetCode [264] | 剑指Offer [34]
- 最大正方形 | LeetCode [221]
- 三角形的最小路径和 | LeetCode [120]
- 俄罗斯套娃信封问题 | LeetCode [354]
- 除自身以外数组的乘积 | LeetCode[238]
- [贪心算法](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/GreedAlgorithm.md)
- 买卖股票的最佳时机 | LeetCode [121]
- 买卖股票的最佳时机II | LeetCode [122]
- 买卖股票的最佳时机(含手续费) | LeetCode [714]
- 分发饼干 | LeetCode [455]
- 连续子数组的最大和 | 剑指Offer [31]
- 最大正方形 | LeetCode [221]
- [二分查找](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/Search.md)
- 二分查找的实现 | LeetCode [704]
- 二分求解`x`的平方根 | LeetCode [69]
- 搜索旋转排序数组 | LeetCode [33]
- 寻找峰值 | LeetCode [162]
- 寻找旋转排序数组中的最小值 | LeetCode [153]
- 在排序数组中查找元素的第一个和最后一个位置 | LeetCode [34]
- 找到K个最接近的元素 | LeetCode [658]
- 寻找比目标字母大的最小字母 | LeetCode [744]
- 数字在排序数组中出现的次数 | LeetCode [34] | 剑指Offer [38]
- [二进制](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/Binary.md)
- 不使用加减乘除运算符实现加减乘除
- 二进制中1的个数 | LeetCode [191] | 剑指Offer [10]
- 数组中只出现一次的数字 | 剑指Offer [40]
- 不用加减乘除做加法 | 剑指Offer [47]
- [回溯算法](https://github.com/Reaper622/DataStructure-Algorithm-TS/tree/master/docs/al/Backtracking.md)
- 括号生成 | LeetCode [22]
## 测试 「使用 Jest 测试」
验证数据结构相关
```
npm run test:ds
```
验证算法相关
```
npm run test:al
```
## 使用Github Action 实现 CI/CD
没有合适的资源?快使用搜索试试~ 我知道了~
数据结构和算法解析LeetCode解题剑指Offer面试题集.zip
共238个文件
js:113个
ts:97个
md:20个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 64 浏览量
2023-10-19
22:01:03
上传
评论
收藏 376KB ZIP 举报
温馨提示
数据结构和算法解析LeetCode解题剑指Offer面试题集.zip
资源推荐
资源详情
资源评论
收起资源包目录
数据结构和算法解析LeetCode解题剑指Offer面试题集.zip (238个子文件)
.babelrc 38B
.DS_Store 6KB
.gitattributes 35B
.gitignore 28B
BinaryTree.js 7KB
Array.test.js 4KB
BinaryTree.test.js 4KB
LinkList.test.js 4KB
LinkList.js 3KB
Heap.js 3KB
RouteSum.js 3KB
PlusMinusMultiplyDivide.js 3KB
GetNumberOfK.js 2KB
MoreThanHalf.js 2KB
BuildTree.js 2KB
SortList.js 2KB
CircularDeque.js 2KB
PrintMatrix.js 2KB
FindClosestElements.js 2KB
FindMedianSortedArrays.js 2KB
MaxEnvelopes.js 2KB
QuickSort.js 2KB
CircleQueue.js 2KB
Stock.js 2KB
String.test.js 2KB
ReverseList.js 2KB
RestoreIpAddress.js 2KB
Search.test.js 2KB
MaxAreaOfIsland.js 1KB
SumFourNumbers.js 1KB
SumThreeNumbers.js 1KB
DynamicProgramming.test.js 1KB
MergeKList.js 1KB
LRUCache.js 1KB
VerifySquenceOfBST.js 1KB
MinStack.js 1KB
Queue.test.js 1KB
StackCheck.js 1KB
Fibonacci.js 1KB
TheNOfTheUglyNumber.js 1KB
ListSum.js 1KB
IsContinous.js 1KB
PrintDiagonal.js 1KB
HasSubTree.js 1KB
LongestPalindrome.js 1KB
ZigzagLevelOrder.js 1KB
CheckInclusion.js 1KB
MergeSort.js 1KB
FindCircleNum.js 1KB
MultiplyString.js 1KB
BubbleSort.js 1KB
MaximalSquare.js 1KB
FirstSameNode.js 1KB
MaxSquare.js 1KB
isValidParentheses.js 1KB
GetIndexFromRotateArray.js 1KB
Sort.test.js 1KB
ReorderList.js 1KB
ThreeSumCloest.js 1KB
Stack.test.js 1KB
Symmetry.js 1KB
FindContinousSequence.js 1KB
RotateRight.js 1KB
Trap.js 1KB
SearchRange.js 1KB
CountBinarySubstrings.js 1KB
SumBinary.js 1KB
NextGreatestLetter.js 1KB
Theif.js 1KB
MaxArea.js 1KB
LengthOfLongestSubstring.js 1KB
GenerateParenthesis.js 1KB
DeleteN.js 1KB
SearchTree.js 1013B
Stack.js 1012B
SeparateList.js 1011B
NumberOfOne.js 985B
Merge.js 980B
FindGreatestSum.js 974B
FindNumWithSum.js 966B
StringAdd.js 961B
Biscuits.js 950B
MergeList.js 943B
InsertSort.js 927B
BinarySearch.js 912B
ProductExpectSelf.js 909B
ClimbStairs.js 898B
LongestCommonPerfix.js 851B
ReorderOddEven.js 830B
RemoveDuplicates.js 820B
LinkListMiddle.js 813B
MinimumTotal.js 804B
Binary.test.js 803B
GreedyAlogorithm.test.js 781B
TreeToList.js 781B
ReverseInt.js 750B
FindNumberAppearOnce.js 748B
Recursion.test.js 726B
FindPeakElement.js 714B
FindMinInRotateArray.js 708B
共 238 条
- 1
- 2
- 3
资源评论
天天501
- 粉丝: 591
- 资源: 4666
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功