闲来无事整理了一下数据结构与算法面试题,准备面试的可以看看。

这份面试题汇总除了Java语言的,我还整理了C++和Golang语言的,无论你是做什么开发这份数据结构与算法面试题汇总都可以看,如果你是做Android开发的呢,就可以到我的主页获取更多Android相关的信息和资料。

话不多说,上干货。

一、Java

1.1 哈希

  • Java中的HashMap的工作原理是什么?
  • 什么是Hashmap?
  • 如何构造一致性哈希算法
  • hashCode() 和equals() 方法的重要性体现在什么地方?
  • Object作为HashMap的key的话,对Object有什么要求吗?
  • hashset 存的数是有序的吗?

1.2 二叉树

  • 求二叉树的最大深度
  • 求二叉树的最小深度
  • 求二叉树中节点的个数
  • 求二叉树中叶子节点的个数
  • 求二叉树中第k层节点的个数
  • 判断二叉树是否是平衡二叉树
  • 判断二叉树是否是完全二叉树
  • 两个二叉树是否完全相同
  • 两个二叉树是否互为镜像
  • 翻转二叉树or镜像二叉树
  • 求两个二叉树的最低公共祖先节点
  • 二叉树的前序遍历
  • 二叉树的中序遍历
  • 二叉树的后序遍历
  • 前序遍历和后序遍历构造二叉树
  • 在二叉树中插入节点
  • 输入一个二叉树和一个整数,打印出二叉树中节点值的和等于输入整数所有的路径
  • 二叉树的搜索区间
  • 二叉树的层次遍历
  • 二叉树内两个节点的最长距离
  • 不同的二叉树
  • 判断二叉树是否是合法的二叉查找树(BST)

1.3 链表

  • 谈一谈,bucket如果⽤链表存储,它的缺点是什么?
  • 有一个链表,奇数位升序偶数位降序,如何将链表变成升序?
  • 如何反转单链表
  • 现在有一个单向链表,谈一谈,如何判断链表中是否出现了环
  • 随机链表的复制

1.4 数组

  • 写一个算法,可以将一个二维数组顺时针旋转90度
  • 一个数组,除一个元素外其它都是两两相等,求那个元素?
  • 找出数组中和为S的一对组合,找出一组就行
  • 求一个数组中连续子向量的最大和
  • 寻找一数组中前K个最大的数

1.5 排序

  • 用Java写一·个冒泡排序?
  • 排序都有哪几种方法?请列举出来
  • 归并排序的原理是什么?
  • 堆排序的原理是什么?
  • 如何得到一个数据流中的中位数?
  • 你知道哪些排序算法,这些算法的时间复杂度分别是多少,解释一下快排?

1.6 堆与栈

  • 内存中的栈(stack)、堆(heap) 和静态区(static area) 的用法
  • heap和stack有什么区别
  • 最小的k个数
  • 滑动窗口最大值
  • 丑数
  • 前K个高频元素
  • 有效的括号
  • 最小栈
  • 柱状图中最大的矩形

1.7 高级算法

  • LRU算法的实现原理
  • 为什么要设计后缀表达式,有什么好处?
  • 设计一个算法,用来压缩一段URL
  • id全局唯一且自增,如何实现?
  • 最后一个单词的长度

1.8 动态规划

  • 斐波那契数列
  • 不同路径
  • 爬楼梯
  • 零钱兑换
  • 打家劫舍
  • 编辑距离

二、C++

2.1 数组

  • Array&List, 数组和链表的区别
  • 一组有序数(从小到大排列),有负有正,找出绝对值最小值
  • 数组中重复的数字
  • 一个长度为N的整形数组,数组中每个元素的取值范围是[0,n-1],判断该数组否有重复的数,请说一下你的思路并手写代码

2.2 排序

  • 手写一下快排代码
  • 介绍一下各种排序算法及其复杂度
  • 稳定排序有哪几种?
  • 问求第k大的数的方法以及各自的复杂度是怎样的?当有相同元素时,还可以使用什么不同的方法求第k大的元素?
  • 海量数据如何去取最大的k个
  • 快排的时间复杂度最差是多少?什么时候时间最差
  • 什么是快排算法;以及什么是稳定性排序,快排是稳定性的吗;快排算法最差情况推导公式

2.3 动态规划

  • 手写代码:最长公共连续子序列
  • 手写代码:求一个字符串最长回文子串
  • 手写代码:求最大子序和

2.4 链表

  • 手写代码:如何合并两个有序链表
  • 手写代码:反转链表
  • 判断一个链表是否为回文链表,说出思路并手写代码
  • 什么是单链表,如何判断两个单向链表是否相交

2.5 高级算法

  • 什么是LRU缓存
  • 洗牌算法

2.6 字符串

  • 给你一个字符串,找出第一个不重复的字符,如“abbbabcd”,则第一个不重复就是c
  • 最长公共前缀
  • 有效的字母异位词

三、Golang

3.1 递归&回溯

  • 手写代码:两数相加
  • 手写代码:括号生成
  • 手写代码:验证二叉搜索树
  • 二叉树的最大深度
  • 二叉树的最近公共祖先
  • 全排列

3.2 并查集

  • 手写代码:省份数量
  • 手写代码:岛屿数量
  • 手写代码:最长连续数列

3.3 字符串

  • 手写代码:转换成小写字母
  • 手写代码:最长公共前缀
  • 手写代码:有效的字母异位词


需要这份汇总文档的话可以直接扫CSDN官方二维码领取:

总结

现在大厂面试越来越注重问数据结构与算法相关的题目,像刚毕业或即将毕业找工作或找实习的计算机专业的学生,他们在面试时问得多的就是基础和数据结构与算法,还有在社招面试中,尽管你的简历上写满了工作经历和项目经历,也还是逃不过数据结构与算法题,可见数据结构与算法在面试时的重要性。

而想征服数据结构与算法题没有别的途径,就是要多刷题、多练,刷题的途径这里不多说,这篇文章和文档主要汇总的是最新、最常问的题目,大家如果年后准备面试的话,可以将这些题目多多练习,对这些题目越熟悉面试通过的几率就越大。

最后,大家对Android面试有什么问题都可以来问我,我会尽力帮到大家,感谢你的阅读,如果觉得这篇文章有用的话,还请点赞、评论、关注三连一波。

2021最新汇总数据结构与算法面试题(准备面试的可以看看)相关推荐

  1. 【2021最新版】数据结构+算法面试题总结(9+20道题含答案解析)

    文章目录 1.栈(stack) 2.队列(queue) 3.链表(Link) 4.散列表(Hash Table) 5.排序二叉树 6. 前缀树 7.红黑树 8.B-TREE 9.位图 算法面试题 1. ...

  2. 数据结构与算法面试题(2022版)

    序列号 内容 链接 1 Java基础知识面试题(2022版) https://blog.csdn.net/qq_43061290/article/details/124023797 2 Java集合容 ...

  3. 数据结构经典算法面试题

    转自:http://hi.baidu.com/geogre_jsj/blog/item/e4b98fd2aab5aa3611df9b92.html 由于这些题,实在太火了.所以,应广大网友建议要求,在 ...

  4. 数据结构和算法面试题系列—二叉树面试题汇总

    这个系列是我多年前找工作时对数据结构和算法总结,其中有基础部分,也有各大公司的经典的面试题,最早发布在CSDN.现整理为一个系列给需要的朋友参考,如有错误,欢迎指正.本系列完整代码地址在 这里. 0 ...

  5. 架构设计分布式数据结构与算法面试题(2020最新版)

    Java面试总结(2021优化版)已发布在个人微信公众号[技术人成长之路],优化版首先修正了读者反馈的部分答案存在的错误,同时根据最新面试总结,删除了低频问题,添加了一些常见面试题,对文章进行了精简优 ...

  6. 分布式数据结构与算法面试题

    分布式 分布式概述 分布式 分布式(distributed)是为了解决单个物理服务器容量和性能瓶颈问题而采用的优化手段,将一个业务拆分成不同的子业务,分布在不同的机器上执行.服务之间通过远程调用协同工 ...

  7. Java数据结构与算法面试题,首发Java程序员人手必备的进阶知识体系,(1)

    在市场上很少能够看到一套不错的学习笔记,小编也是花了挺久的时间总结了这份**<Java程序员人手必备的进阶知识体系>**,帮助大家系统化高效的进阶学习,而不是零散低效的阅读. 2020全新 ...

  8. 架构设计分布式数据结构与算法面试题

    目录 架构设计 请列举出在JDK中几个常用的设计模式? 什么是设计模式?你是否在你的代码里面使用过任何设计模式? 静态代理.JDK动态代理以及CGLIB动态代理 静态代理 动态代理 cglib代理 单 ...

  9. 【建议收藏】数据结构和算法面试题

    数据结构 数据结构分为两大类,线性结构和非线性结构. 线性结构:数组.队列.链表.栈 非线性结构:多维数组.树结构.图结构 1.数组 数组是最常用的数据结构,用于存储相同类型的数据,数组的长度也是固定 ...

最新文章

  1. android 学习随笔二十(多媒体编程 )
  2. 如何保护你的 Python 代码—— 定制 Python 解释器
  3. 吴恩达新书《Machine Learning Yearning》手稿完工,现在全集免费下载!(附pdf下载)
  4. 设计模式在Netty中的应用-责任链模式源码举例
  5. python测试用例管理_Python测试框架Pytest的常用插件测试报告
  6. 【theano-windows】学习笔记三——theano中的导数
  7. 调用打印机_涨知识|你不知道的关于打印机的打印过程和打印机驱动的那些事...
  8. Laravel 中使用Goutte + GuzzleHttp 组件设置 headers无效的原因探究以及解决方案
  9. BZOJ 1051 受欢迎的牛 缩点
  10. 《财富自由子路》李笑来
  11. 精益创业实战 - 内容简介
  12. ps修改图片上文字的几种方法 图+文
  13. 抖音新版抓包方案,绕过sslpinning 直接修改so
  14. CalBioreagents丨艾美捷丨ACTH N端单克隆抗体
  15. win10笔记本或电脑WLAN密码忘记了不怕,【win10】查看以前连接过的wifi密码
  16. 台式机fiddler手机抓包
  17. 图片优化之Base64解决方案
  18. android开发基础2-基本UI组件(明日科技教程)
  19. python----scatter绘画散点图
  20. java什么是类型擦除_Java 泛型,你了解类型擦除吗?

热门文章

  1. 绝对路径、相对路径、虚拟路径以及资源路径
  2. mysql负载均衡解决方案
  3. 马云公布淘宝商城新规调整
  4. 五级工程师,你处在第几级
  5. 启动计算机页面配置问题,win10系统提示由于启动计算机时出现了页面配置问题的操作步骤...
  6. 计算机专业湖北二本大学排名及分数线,2019-2020湖北二本大学排名及分数线(理科+文科)...
  7. CCNA 认证学前准备(一)
  8. Filco minila air 与windows10蓝牙连接问题
  9. 2022-2028全球与中国全球采购系统(GPS)市场现状及未来发展趋势
  10. 阿里达摩院招Research Intern