算法岗面试题目整理

鄙人才疏学浅。有整理不到位的,勿喷。

注意搜题目时、只需百度”HDU”+算法名称即可

最基本

  1. C++ 指针与引用
  2. 类继承,多态(不懂的百度吧)
  3. 正则表达式
  4. (矩阵)快速幂
  5. 筛素数(了解)
  6. 二叉树前、中、后序遍历(递归、非递归形式(较难))

题目: HDU5015(矩阵快速幂)

第一节 链表操作相关

注: 该节需要写代码实现

  1. 反转链表(前插)
  2. 遍历链表
  3. 交叉反转链表
  4. 单调队列
  5. 链表中倒数第K个节点
    题目: HDU4193(单调队列)

第二节 排序相关(分治)

注:该节需要代码实现

  1. 实现快速排序、基数排序、插入排序、归并排序(java或C++)
  2. 待定
    题目:HDU2141(分治)、HDU2899(分治)、HDU4282(分治)、HDU2289(分治)、LeetCode上相关题目。

第三节 动态规划相关

  1. 最长上升子序列LIS(重要)
  2. 编辑距离
  3. 平面最近点对距离
  4. 最大子串和
  5. 最长公共子序列
  6. 区间DP、数位DP、树形DP。(较难DP(面试只需了解): 插头DP、状态压缩DP、斜率优化DP、概率DP)

题目:HDU5489(LIS)、HDU4323(编辑距离)、HDU1561(树形DP),HDU3001(状压DP)、HDU3664(排列DP)、HDU4507(数位DP)、HDU3480(斜率优化DP)、HDU2993(斜率优化DP)、HDU4003(树形DP)、HDU4028(离散化DP)、HDU4842(简单DP)、HDU4734(数位DP)、HDU3652(简单数位DP)、HDU4389(数位DP)、HDU3709(数位DP)、51nod1006(最长公共子序列)、HDU5045(压缩DP)、HDU5115(简单区间DP)、HDU4607(树形DP)、HDU5155(简单DP计数)、HDU4512(LIS)、HDU4532(排列DP)、HDU1007(平面最近点对距离)、

第四节 字符串相关

  1. KMP算法(next数组)
  2. 正则表达式

题目: HDU1711(KMP)、HDU3336(KMP)

第五节 搜索相关

  1. 最小生成树 Kruskal,Prim(必须掌握)
  2. 最段路径 Dijkstra、Floyd
  3. DFS(深度优先搜索)、BFS(广度优先搜索)【剪枝+持久化】
  4. 模拟退火

题目:HDU1372(BFS)、HDU3766(BFS)、HDU5017(退火)、

第六节 数据结构相关

注: 该节一般是笔试最后一题(较难),要求会基本方法,不要求掌握代码

  1. 字典树
  2. 第K大数
  3. B+ B树
  4. 红黑树
  5. KD树(面试可能会问理论)
  6. 伸展树(不做要求)
  7. 线段树
  8. 树状数组(与线段树功能类似,实现方式不同)
  9. 并查集

题目:HDU4027(线段树)、HDU1698(线段树+lazy优化)、HDU5032(树状数组)、POJ1195(二维树状数组)、HDU4819(二维线段树)、HDU4533(树状数组)、

第七节 机器学习相关

猜你喜欢

转载自blog.csdn.net/u012969412/article/details/81048853