📜  面试题中的前 10 名算法 | 2套

📅  最后修改于: 2021-10-23 07:50:51             🧑  作者: Mango

在上一篇文章中,讨论了面试中最常被问到的关于不同主题的前 10 大算法/问题。

在这篇文章中,涵盖了其余数据结构或算法的前 10 个问题。如果您正在准备编码面试,则必须解决这些问题。

主题

  • 堆栈和队列
  • 树/二叉搜索树
  • 前缀匹配和滑动窗口
  • 贪心算法
  • 特里

堆栈和队列

  1. 下一个更大的元素
  2. 平衡括号
  3. 库存跨度问题
  4. 使用两个队列实现堆栈
  5. 使用两个栈实现一个队列
  6. 在一个数组中实现 2 个堆栈
  7. 在数组中实现 k 个堆栈
  8. 在 O(1) 时间内实现一个支持 getMin() 的特殊堆栈
  9. 实现 LRU 缓存
  10. 反转堆栈

树/二叉搜索树

  1. 检查二叉树是否是 BST
  2. 将给定的二叉树转换为双向链表
  3. 无递归无栈中序树遍历
  4. 逐行层序遍历
  5. 从给定的中序和预序遍历构造树
  6. 从给定的前序和后序遍历构造全二叉树
  7. 查找二叉树的两个节点之间的距离
  8. BST的两个节点互换,修正BST
  9. 打印二叉树的左视图
  10. 将二叉树展平为链表

前缀匹配和滑动窗口

  1. 均衡指数
  2. 总和为 0 的子数组
  3. 二进制数组中具有相同数量的 1 和 0 的子数组
  4. 大小为 k 的子数组的最大和
  5. 每个大小为 k 的窗口中的不同元素
  6. 在正数数组中具有给定总和的子数组
  7. 每个大小为 k 的窗口中的最小元素
  8. N-bonacci数
  9. 二进制字符串0*1*0* 形式的最长子序列
  10. 两个二进制数组中具有相同总和的最长跨度

  1. 整数流中的中位数(运行整数)
  2. 流中第 K 个最大的元素
  3. 对接近排序(或 K 排序)的数组进行排序
  4. 数组中的 k 个最大(或最小)元素
  5. 合并 k 个排序数组
  6. 外部排序
  7. 霍夫曼解码
  8. 由数组的数字组成的两个数字的最小和
  9. 从 k 个列表中查找包含元素的最小范围
  10. 检查给定的二叉树是否是堆

贪心算法

  1. 铁路/汽车站所需的最少站台数量
  2. 一次允许两个作业的作业调度
  3. Prim 的最小生成树 (MST)
  4. Dijkstra 最短路径算法
  5. 排序输入的高效霍夫曼编码
  6. 分数背包问题
  7. 图形着色
  8. 寻找最小硬币数量的贪婪算法
  9. 最小化一组给定的互相借钱的朋友之间的现金流
  10. 以最低成本连接 n 根绳索

特里

  1. 在二进制矩阵中查找重复行
  2. 断字问题
  3. 给定字符串集中的最长公共前缀
  4. 从文件中找出 k 个最常用的词
  5. 为给定列表中的每个单词查找最短的唯一前缀
  6. 最长前缀匹配
  7. 在整数流中找到给定整数的最大异或
  8. 使用 Trie 的自动完成功能
  9. 实施电话簿
  10. 计数使用后缀特里字符串的不同子的

如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程学生竞争性编程现场课程