左神算法基础篇

文档:5-左神算法基础篇
打开方式:有道云笔记,复制链接到浏览器
链接:http://note.youdao.com/noteshare?id=8f8a5d3fabeda953dd1dc14f35858ecb&sub=84DA41AC7592424BAF43CC3DBF40683D


(持续更新中2021.1.15)

目录


第一课:排序

1.认识时间复杂度:

1.1 找出B中不属于A的数:

1.2 冒泡排序:

1.3 插入排序:

1.4 选择排序:

1.5 归并排序:

1.6 桶排序:

1.7 快速排序:

1.8 堆排序

1.9 排序算法的稳定性

1.10 工程中的综合排序算法

1.11 比较器的使用(?)

2. 荷兰国旗问题:

3. 小和问题(SmallSum):

4. 逆序对问题:

5. 相邻两数的最大值(GetMaxGap):

第二课:

1.用数组结构实现大小固定的队列和栈

2.设计有 getMin 功能的栈

3. 如何仅用队列结构实现栈结构?如何仅用栈结构实现队列结构?

4. 猫狗队列:

5.旋转正方形矩阵:

解法1:一层一层循环,坐标变换

解法2:做两次翻转,先沿右上-左下的对角线翻转,再沿水平中线上下翻转

解法3:找规律:mat[i][j]被旋转到了mat[j][n-i-1]的位置

6. 转圈打印矩阵:

7. “之”字形打印矩阵:

8. 在行列都排好序的矩阵中找数:

9.反转单向和双向链表:

10.打印两个链表的公共部分

11.判断该链表是否为回文结构

解法1:栈

解法2:快慢指针+翻转

解法3:快慢指针+栈

解法4:list

12.将单向链表按某值划分成左边小、中间相等、右边大的形式

思路①:将链表数据存储到数组,用快排的思路将数据分成三部分

思路②:建立三个小链表,small,equal,bigger

第三课:树

1.实现二叉树的先序、中序、后序遍历:

思路①:非递归方式:

思路②:递归的方式:

2.如何直观的打印一颗二叉树:

3.在二叉树中找到一个节点的后继节点:

4.二叉树的序列化和反序列化:

5.折纸问题:

6.判断一棵树是否是平衡二叉树

7.判断一棵树是否是搜索二叉树、判断一棵树是否是完全二叉树

8.已知一棵完全二叉树,求其节点的个数:

第四课:HashMap

第五课:图

1.BFS

2.DFS

第六课:贪心算法

1.前缀树:

2. 输入一个数组,返回分割的最小代价:

3.IPO问题:

4.字符串拼起来之后形成的字符串具有最低的字典序:

5.会议室安排

第七课:递归和动态规划

1.求n的阶乘:

思路:递归+循环

2.汉诺塔

3.打印一个字符串的全部子序列,包括空字符串

4.字符串全排列

5.最小路径和

思路:暴力枚举+递归+动态规划


猜你喜欢

转载自blog.csdn.net/lixiaohulife/article/details/112758876