左神的算法课部分题目java代码自己重新实现,部分题目若有更常用的解法将实现一题多解以供参考,后期还将用c++重新实现。同时附上对应的LeetCode题号,持续更新...
-
lecture_1包中主要内容为归并排序及其应用,除了课上实现的原始归并排序和小和问题外,增加了逆序对问题的实现
-
lecture_1包中更新冒泡,插入和选择排序代码
-
lecture_2包中主要内容包括荷兰国旗问题(包括lLeetCode 75 Sort Colors),进而引出经典快排实现,随机快排实现。同时也包括堆排实现
-
lecture_3包中主要内容包括:
- MaxGap问题代码实现(LeetCode 164 Maximum Gap),该问题为桶排序思路的应用
- MinStack问题的代码实现(LeetCode 155. MinStack)
- 使用栈实现队列(LeetCode 232. Implement Queue using Stacks)
- 使用队列实现栈(LeetCode 225. Implement Stack using Queues)
-
lecture_4包中主要内容包括:
- 转圈打印矩阵代码实现(LeetCode 54. Spiral Matrix)
- Zigzag方式打印矩阵代码实现(LintCode 185. Matrix ZigZag Traversal)
- 90°旋转矩阵代码实现(LeetCode 48. Rotate Image)
- 搜索行和列均有序的二维矩阵代码实现(LeetCode 240. Search a 2D Matrix II)
- 反转链表(LeetCode 206. Reverse Linked List)
- 判断一个链表是否为回文结构的各种代码实现(LeetCode 234. Palindrome Linked List)
- 将一个链表划分为左边小于某个数,右边大于等于某个数的的形式的代码实现 (LeetCode 86. Partition List)
- 简单无环单链表相交结点判断代码实现 (LeetCode 160. Intersection of Two Linked Lists)
- 复制带有random指针的链表代码实现(LeetCode 138. Copy List With Random Pointer)
- lecture_5包中主要内容包括:
- 二叉树中序遍历(LeetCode 94. Binary Tree Inorder Traversal)、前序遍历(LeetCode 144. Binary Tree Preorder Traversal)、后序遍历( LeetCode 145, Binary Tree Postorder Traversal)的递归版本与非递归版本实现
- 二叉树按层遍历代码实现(LeetCode 102. Binary Tree Level Order Traversal)
- 求二叉树最大宽度代码实现(LeetCode 662. Maximum Width of Binary Tree)
- 判断一颗二叉树是否为二叉搜索树的迭代实现与递归实现(树型dp)(LeetCode 98. Validate Binary Search Tree)
- 判断一颗二叉树是否平衡代码实现(LeetCode 110. Balanced Binary Tree)
- 判断一颗二叉树是否为完全二叉树(LeetCode 958. Check Completeness of a Binary Tree)
- 寻找二叉树的最低公共祖先 (LeetCode 236. Lowest Common Ancestor),完成了通解版本与简洁的特解版本
- 二叉树的序列化与反序列化(LeetCode 297. Serialize and Deserialize Binary Tree),完成了先序遍历序列化与按层遍历序列化两个版本
- 判断一棵二叉树是否为另一棵二叉树的子树(LeetCode 572. Subtree of Another Tree)
- 折纸问题