程序 = 数据结构 + 算法

一 数据结构知识点

01 队列和栈,需要了解它们的特点。

  • 队列是先进先出,栈是后进先出。

02 表

  • 表,包括很多种,有占用连续空间的数组、用指针链接的单向和双向链表,首尾相接的循环链表、以及散列表,也叫哈希表。

03 图

  • 图,在特定领域使用的比较多,例如路由算法中会经常使用到,图分为有向图、无向图及带权图,这部分需要掌握图的深度遍历和广度遍历算法,了解最短路径算法。

04 树的内容

  • 树一般用作查找与排序的辅助结构,剩下两个部分都和树有关,一个是二叉树,一个是多叉树。
  • 多叉树包括 B 树族,有 B 树、B+ 树、B* 树,比较适合用来做文件检索;另外一个是字典树,适合进行字符串的多模匹配。
  • 二叉树包括平衡二叉树、红黑树、哈夫曼树,以及堆,适合用于进行数据查找和排序。这部分需要了解二叉树的构建、插入、删除操作的实现,需要掌握二叉树的前序、中序、后序遍历。

二 算法知识点

  • 算法题的常用解题方法。需要掌握几种常用解题思路与方法,才能以不变应万变。这里讲一下:分治、动态规划、贪心、回溯和分支界定这五种常用的算法题解题方法,来看看它们分别适用于什么场景,如何应用。
  • 复杂度是衡量算法好坏的标准之一,我们需要掌握计算算法时间复杂度和空间复杂度的方法。计算时间复杂度的方法一般是找到执行次数最多的语句,然后计算语句执行次数的数量级,最后用大写 O 来表示结果。
  • 常用的字符串匹配算法,了解不同算法的匹配思路。
  • 排序也是经常考察的知识点,排序算法分为插入、交换、选择、归并、基数五类,其中快速排序和堆排序考察的频率最高,要重点掌握,需要能够手写算法实现。
  • 常用的查找算法,包括二分查找、二叉排序树、B 树、Hash、BloomFilter 等,需要了解它们的适用场景,例如二分查找适合小数量集内存查找,B 树适合文件索引,Hash 常数级的时间复杂度更适合对查找效率要求较高的场合,BloomFilter 适合对大数据集进行数据存在性过滤。

考察点和加分项

考察点

  • 了解基本数据结构及特点,例如数据结构中有哪些二叉树,这些树有哪些特点;
  • 要熟练掌握表、栈、队列、树,深刻理解不同类型实现的使用场景,例如红黑树适合用来做搜索,B+ 树适合用来做索引;
  • 要了解常用的搜索、排序算法,及复杂度和稳定性。特别是快速排序和堆排序的实现,要熟练掌握;
  • 要了解常用的字符串处理算法,和处理的思路,例如BM算法使用后缀匹配进行字符串匹配;
  • 要能够分析算法实现的复杂度,特别是时间复杂度,例如TopK问题的时间复杂度计算;
  • 要了解五种常用的解题方法,解决问题的思路和解决哪类问题,以及解题的步骤。

加分项

  • 能够将数据结构与实际使用场景结合,例如介绍红黑树时结合 TreeMap 的实现;介绍 B+ 树时结合 MySQL 中的索引实现等等;
  • 能知道不同算法在业务场景中有哪些应用,例如 TopK 算法在热门排序中的应用;
  • 面对模糊的题目能主动沟通确认条件和边界,例如前面介绍的括号匹配问题时列举的那些细节点,都可以跟面试官再次确认;
  • 在书写算法代码前,先讲一下解题思路,不要一上来埋头就写。一般解题思路存在问题时,面试官都会适当进行引导;
  • 能够发现解答中的一些问题,给出改进的思路。比如面试时由于时间关系,大家可能都会选择比较保守的解题思路,不一定就是最优解,这时可以在解答后,指出当前算法存在的一些问题,以及改进的思路。比如可以考虑使用多线程的方式来提高求解性能。

真题汇总 | 常见的面试真题

第一部分总结如下。

  • 第 1、2 题都是基础算法,必须要牢牢掌握,一些题目要记住递归与非递归的实现,例如树的遍历、快速排序等;
  • 类似第 5 题这样的对使用内存进行限制的题目,要考虑使用分治思想进行分解处理;
  • 第 6 题数组去重,可以有排序和 Hash 两种思路。

第二部分真题总结如下。

  • 第 9 题成语接龙,可以考虑使用深度优先搜索解决;
  • 第 10 题寻找两节点公共祖先,可以考虑通过递归与非递归两种方式实现。

学习笔记 | 数据结构和算法 知识点思维导图相关推荐

  1. 【数据结构与算法】思维导图

    作者:何翔 学院:计算机学院 学号:04191315 班级:软件1903 完整资料:https://github.com/He-Xiang-best/Data-Structure-and-Algori ...

  2. lamp兄弟连linux学习笔记-linux常用命令大全(思维导图)

  3. 数据结构和算法_思维导图

    原文地址: https://blog.csdn.net/qq_38646470/article/details/79616465

  4. 最值得收藏的 数据结构 全部知识点思维导图整理(王道考研), 附带经典题型整理

    本文的思维导图根据王道的数据结构书本整理而来并标记出重点内容,包括了知识点和部分课后习题 思维导图源文件已经发布在我的资源当中, 点击获取全部导图和配套OneNote笔记, 有需要的可以去 我的主页 ...

  5. 最值得收藏的 C++ 清华大学郑莉版全部知识点思维导图整理, 东南大学软件工程初试906科目

    本文的思维导图根据清华大学郑莉出版的C++书籍整理而来并标记出重点内容,适用于想考东南大学软件工程906的同学 思维导图源文件已经发布在我的资源当中, 点击获取全部导图和配套OneNote笔记, 有需 ...

  6. 最值得收藏的 数字图像处理 全部知识点思维导图整理(武汉大学慕课课程)(持续更新中)

    本文的思维导图根据慕课上的武汉大学数字图像处理国家精品课程整理而来并标记出重点内容 思维导图就整理了这么多,之后应该也不会更新此内容了, 有需要的可以去 我的主页 了解更多学科的精品思维导图整理 本文 ...

  7. 算法工程师思维导图—数据结构与算法

    卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器.该手册一共分为数据结构与算法.数学基础.统计机器学习和深度学习四个部分. 点击这里查看具体使用指南.该手册有两种获取 ...

  8. 卖萌屋算法工程师思维导图part3—深度学习篇

    卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器.该手册一共分为数据结构与算法.数学基础.统计机器学习和深度学习四个部分. 下面是第三部分深度学习的内容~ 公众号后台 ...

  9. AI学习知识点思维导图

    AI学习知识点思维导图 直接看图 直接看图

最新文章

  1. python储存在ftp_python实现FTP
  2. zynq学习05 Zynq 7000 emio的gpio操作
  3. 软件工程第二次结对作业
  4. Tensorflow:interactivesession和session的区别。
  5. 文本摘要提取_了解自动文本摘要-1:提取方法
  6. 高级ZK:异步UI更新和后台处理–第1部分
  7. cuda 编译 linux,Linux下安装Tensorflow源码及编译
  8. Jmeter基本概念介绍
  9. vnc远程无法关闭窗口_vnc远程画面不能控制,vnc远程画面控制不了是什么原因?原因详解...
  10. 1.4 Flink HDFS Connector /Flink HDFS连接器
  11. BOMRemover v2.0 去除代码中的UTF-8 BOM
  12. 电脑主板原理图讲解(电脑主板构造图文详解)CPU和北桥芯片(随着发展有的北桥已经被设计到CPU内部了)南桥芯片
  13. 首款搭载HarmonyOS,分布式“智慧眼”!华为智选首款搭载HarmonyOS的智能摄像头正式发布...
  14. 自我介绍一分钟范文(碎的)
  15. JQuery实现动态漂浮广告
  16. 人脸识别——基于百度智能云实现
  17. 用exec()函数执行新程序
  18. 各种手机处理器排行榜_手机处理器排行前十位,分别是什么?
  19. 锂离子电池离线参数辨识(基于二阶RC电池模型)
  20. 明日之后多贝雪山服务器在安卓系统叫什么,明日之后多贝雪山介绍_多贝雪山地图攻略_3DM手游...

热门文章

  1. 4、微信小程序-项目配置
  2. 乐视 LeTMC-520体感摄像头 ROS驱动
  3. 模拟开关/多路复用器(CH442E)
  4. 用运算放大器组成仪表放大器-仪表放大器计算
  5. SSM毕设项目洗浴中心管理系统b6027(java+VUE+Mybatis+Maven+Mysql)
  6. 关于-/bin/sh:xx(命令) not found 的几种原因和解决办法
  7. 字言字语(一)----英文手绘字体和部分中文手绘字体
  8. 拒绝服务攻击是对计算机网络的哪种,信息安全技术题库:DoS攻击是一种对网络危害巨大的恶意攻击,其中,具有代表性的攻击手段包括SYN洪泛、ICMP洪泛、UDP洪泛等。()...
  9. 采访Clone Detective项目创始人Immo Landwerth
  10. control转化成XPS类型文件,再由XPS转化成PDF