32个 Java面试核心 必考点完全解析之数据结构与算法是什么

2019-09-23 06:59:00 查看次数 35 分类: 面试题及技巧>java面试题 | 文章来源:http://www.ifx666.cn

摘要内容:32个 Java面试核心 必考点完全解析之数据结构与算法是什么

5.1 知识点汇总

5.1.1 数据结构

队列

  • 数组
  • 单链表
  • 双链表
  • 循环链表
  • 散列表

  • 有向图
  • 无向图
  • 带权图

多叉树

  • B、B+树
  • 字典树

二叉树

  • 平衡二叉树
  • 红黑树
  • 哈夫曼树

5.1.2 算法

常用算法思路

  • 分治
  • 动态规划
  • 贪心
  • 回溯
  • 分支界定

复杂度

  • 时间复杂度
  • 空间复杂度

排序

  • 插入

    • 希尔
    • 直插
  • 交换

    • 冒泡
    • 快排
  • 选择

    • 简单选择
  • 归并
  • 基数

查找

  • 二分查找
  • 二叉排序树
  • B树
  • BloomFilter

字符串匹配

  • BF算法
  • BM算法
  • Sundady算法
  • KMP算法
  • Tire树

5.2 字符串匹配

字符串匹配问题
判断给定字符串中的括号是否匹配

解体思路

  • 使用栈
  • 遇左括号入栈
  • 遇右括号出栈,判断出栈括号是否与右括号成对

5.3 考察点和加分项

考察点

  • 了解基本数据结构与特点
  • 表、栈、队列、树需要熟练掌握,深刻理解使用场景(例如红黑树适合搜索,B+树适合索引)
  • 了解常用的搜索、排序算法,及复杂度和稳定性
  • 了解常用的字符串处理算法
  • 能够分析算法实现的复杂度
  • 了解常用算法分类,解决问题的思路和解决哪类问题

加分项

  • 能够将数据结构与实际使用场景结合(介绍红黑树时结合TreeMap的实现,介绍B+树时结合MySQL的索引)
  • 不同算法在业务场景中的应用
  • 面对模糊的题目能沟通确认条件和边界
  • 书写算法代码前,先讲一下解题思路
  • 能够发现解答中的一些问题,给出改进的思路

5.4 真题

题1、题2基础题,必须掌握

  • 各种排序算法实现和复杂度、稳定性
  • 二叉树的前、中、后序遍历
  • 翻转句子中单词的顺序
  • 用栈模拟队列(或用队列模拟栈)
  • 堆10亿个数进行排序,限制内存位1G
  • 去掉(或找出)两个数组中重复的数字
  • 将一颗二叉树转换成其镜像
  • 确定一个字符串中的括号是否匹配
  • 给定一个开始词,一个结束词,一个字典,如何找到从开始词到结束词的最短单词接龙路径
  • 如何查找两个二叉树节点的最近公共祖先

上一篇: 中级Java面试题多线程常问题目汇总_java面试题

下一篇: web前端面试题 本文是在GitHub上看到一个大牛总结的前端常见面试题

评论

评论列表