You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

226 lines
4.0 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

算法和数据结构新手班
01 位运算、算法是什么、介绍位运算和简单排序
内容:
讲解二进制、位运算
介绍什么是算法
讲解冒泡、选择、插入排序
题目:
实现打印一个整数的二进制
给定一个参数N返回1!+2!+3!+4!+…+N!的结果
实现冒泡排序
实现选择排序
实现插入排序
02 数据结构的大分类、介绍前缀和与对数器
内容:
什么是数据结构、组成各种数据结构最基本的元件
前缀和数组
随机函数
对数器的使用
题目:
实现前缀和数组
如何用1~5的随机函数加工出1~7的随机函数
如何用a~b的随机函数加工出c~d的随机函数
展示对数器的使用
如何把不等概率随机函数变成等概率随机函数
03 介绍二分法,介绍时间复杂度、动态数组、哈希表和有序表
内容:
二分法
使用二分法解决不同的题目
时间复杂度
动态数组
按值传递、按引用传递
哈希表
有序表
题目:
有序数组中找到num
有序数组中找到>=num最左的位置
有序数组中找到<=num最右的位置
局部最小值问题
哈希表使用的code讲解
有序表使用的code讲解
04 链表相关的简单面试题
内容:
单双链表的定义
栈、队列
双端队列
题目:
反转单链表
反转双链表
用单链表实现队列
用单链表实现栈
用双链表实现双端队列
K个节点的组内逆序调整问题
给定一个单链表的头节点head和一个正数k
实现k个节点的小组内部逆序如果最后一组不够k个就不调整
例子:
调整前1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8k = 3
调整后3 -> 2 -> 1 -> 6 -> 5 -> 4 -> 7 -> 8
两个链表相加问题
给定两个链表的头节点head1和head2
认为从左到右是某个数字从低位到高位,返回相加之后的链表
例子 4 -> 3 -> 6 2 -> 5 -> 3
返回 6 -> 8 -> 9
解释 634 + 352 = 986
两个有序链表的合并
给定两个有序链表的头节点head1和head2
返回合并之后的大链表,要求依然有序
例子 1 -> 3 -> 3 -> 5 -> 7 2 -> 2 -> 3 -> 3-> 7
返回 1 -> 2 -> 2 -> 3 -> 3 -> 3 -> 3 -> 5 -> 7
05 位图、位运算实现加减乘除
内容:
位图
位运算使用的进一步学习:实现加减乘除
题目:
现场写位图的code、讲解
位运算的加减乘除
06 比较器、优先级队列、二叉树
内容:
比较器
优先级队列
二叉树的基本遍历
二叉树的递归套路
题目:
补充了一个链表的题目
合并多个有序链表
Leetcode原题https://leetcode.com/problems/merge-k-sorted-lists
判断两颗树是否结构相同
Leetcode原题https://leetcode.com/problems/same-tree
判断一棵树是否是镜面树
Leetcode原题https://leetcode.com/problems/symmetric-tree
返回一棵树的最大深度
Leetcode原题https://leetcode.com/problems/maximum-depth-of-binary-tree
用先序数组和中序数组重建一棵树
Leetcode原题https://leetcode.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal
用code展示比较器的使用
二叉树先序、中序、后序遍历的代码实现、介绍递归序
07 继续二叉树的很多题目
内容:
进一步讲解二叉树题目,来熟悉二叉树
题目:
二叉树按层遍历并收集节点
Leetcode原题https://leetcode.com/problems/binary-tree-level-order-traversal-ii
判断是否是平衡搜索二叉树
Leetcode原题https://leetcode.com/problems/balanced-binary-tree
在二叉树上能否组成路径和
Leetcode原题https://leetcode.com/problems/path-sum
在二叉树上收集所有达标的路径和
Leetcode原题https://leetcode.com/problems/path-sum-ii
判断二叉树是否是搜索二叉树
08 介绍归并排序和快速排序
内容:
讲解一个位运算的题目
归并排序
快速排序
题目:
不要用任何比较判断,返回两个数中较大的数
归并排序的递归实现和非递归实现
快速排序的递归实现和非递归实现