其他算法
4、堆排序
因为每次的堆顶元素是当前序列的最值,所以可以理解为优先队列,然后可以和类似任务处理、topK问题、贪心里面的区间问题和霍夫曼树、Prim算法生成最小生成树、Dijkstra算法的优化
其他算法
经典面试算法
1. 如何仅用递归函数和栈操作逆序一个栈
1、题目要求
一个栈依次压入1、2、3、4、5,那么从栈顶到栈底分别为5、4、3、2、1。将这个栈转置后,从栈顶到栈底为 1、2、3、4、5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,不能用其他数据结构;
2、解答
想要不使用别的数据结构完成栈的反转,就必须借助递归函数的返回值来实现这些操作。首先一个递归要深入栈中,取得并移除栈底元素,但是不应该改变除了栈底外的其他元素的顺序。;第二个递归是要将取出的元素按要求
再放入栈中,push操作要在递归返回后再push。也就完成了要求;
3、总结
对于容器来说,想要改变元素的顺序,同时不适用额外的数据结构,可以借助递归函数的返回值来合理的安排你想要的操作。
2. 猫狗队列
1、题目要求:
实现一种狗猫队列的结构,可以完成add,pollall,polldog,pollcat等操作;
2、解答:
本题考查实现特殊数据结构的能力以及针对特殊功能的算法设计能力,略过。
3. 打印两个有序链表的公共部分
1、题目要求:
给定两个有序链表的头指针head1和head2,打印两个链表的公共部分;
2、解答:
循环比较两个指针的数值,两个指针都不能为空,小的推进,相等就记录并两个指针都推进。
全站分卷索引 · 42 卷
- 1代码随想录知识星球精华(最强八股文)第五版(算法篇)
- 2找出所有子集的异或总和再求和
- 3哈希表
- 4哈希冲突
- 5红黑树与AVL树
- 6平衡二叉树(AVL树)
- 7将有序数组转换为二叉搜索树
- 83. 分割(组合问题)
- 9方法论
- 10509. 斐波那契数
- 1162. 不同路径
- 1296. 不同的二叉搜索树
- 13322. 零钱兑换
- 14爬楼梯
- 15背包小总结 (01背包、完全背包)
- 16子序列问题
- 17674. 最长连续递增序列
- 18115. 不同的子序列
- 19总结
- 20技巧总结
- 21时间序列模型
- 22区间DP模型
- 23664. 奇怪的打印机
- 24编辑距离
- 25回文串
- 26DP递推公式总结
- 27排序算法
- 28其他算法
- 294. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历
- 302. TOP N问题
- 313. 分布式的TOP N问题
- 322. Astar数据结构 + 公式
- 334. 代码实现
- 345. 总体代码
- 35堆排序
- 36单源最短路
- 37思维导图
- 38链表
- 39回溯
- 40贪心
- 41动态规划
- 42排序