• 最全BAT面试题


    第一:复杂度估算和排序算法(上)

    1) 时间复杂度和空间复杂度

    2)认识对数器

    0,有一个你想要测试的方法a
    1,实现一个绝对正确的但是复杂度不好的方法b
    2,实现一个随机样本产生器
    3,实现比对的方法
    4,把方法a和方法b比对很多次来验证方法a是否正确
    5,如果有一个样本使得比对出错,打印样本分析是哪个方法出错
    6,当样本数量很多时比对测试依然正确,可以确定方法a已经正确

    3)冒泡排序

    4)选择排序

    5)插入排序

    6)如何分析递归过程的时间复杂度,代入法,迭代法,公式法,母函数法,差分方程法,递归树法。

    7)归并排序

    8)小和问题,将此问题跟归并排序结合起来。

    9 ) 快排问题

    第二:复杂度估算和排序算法(下)

    1)荷兰国旗问题,有随机求 012210这样的组合队列,将数据进行排序实现00001111222这样的排序,桶排

    2)随机快速排序

    3)堆结构与堆排序

    4)认识排序算法的稳定性

    5)认识比较器

    6)桶排序

    7)计数排序

    8)基数排序

    9)数组排序后的最大差值问题

    10)排序算法在工程中的应用

    第三:章栈、队列、链表、数组和矩阵结构

    1)栈结构,出栈,入栈

    2)队列结构,火车隧道

    3)链表结构,单链表,双链表,链表的翻转。

    4)数组结构,简单的数组结构

    5)矩阵结构

    6)二分搜索的扩展,

    第四:二叉树结构

    1)二叉树结构

    2)二叉树的递归与非递归遍历

    3)打印二叉树

    4)判断搜索二叉树

    5)判断完全二叉树

    6)判断平衡二叉树

    7)折纸问题

    8)二叉树节点的前驱节点与后继节点

    9)二叉树的序列化和反序列化

    第五:和哈希函数有关的三个结构与并查集

    1)哈希函数与哈希表

    2)布隆过滤器详解

    3)一致性哈希结构

    4)并查集结构与应用(岛问题)

    第六:章图算法

    1)图结构的表示方法

    2)图的深度优先遍历与宽度优先遍历

    3)拓扑排序问题

    4)最小生成树问题

    5)单源最短路径问题

    第七:前缀树、堆结构和贪心算法

    1)前缀树

    2)堆结构的扩展与应用

    3)介绍贪心算法及其相关题目

    4)在面试中如何快速的尝试出贪心策略

    第八:暴力递归到动态规划

    1)递归

    2)动态规划

    3)如何把暴力递归套路的变成动态规划

    算法高级:

    第一:KMP算法和Manacher算法

    1)KMP算法及其扩展面试题目

    2)Manacher算法及其扩展面试题目

    第二:窗口内最大值的更新结构和单调栈结构

    1)窗口内最大值的更新结构

    2)单调栈结构

    第三:Morris遍历和sortedMap

    1)二叉树的Morris遍历

    2)跳表结构

    3)AVL树和红黑树结构,平衡二叉树跟红黑树

    【今日头条、拼多多题目】

    分类算法的理解

    • 决策树的原理,DT
    • 支持向量机,SVM 
    • 逻辑斯蒂回归,LR

    聚类算法的理解

    • 均值聚类,可选的参数,如果确定聚类个数,K-mean
    • 聚类和分类的异同,举例说明,regirssion,classify

    特征选择算法的理解

    集成提升的理解

    • xgboost
    • gbdt

    【面试题目】

    1. 二叉树前序递归遍历算法(手写代码)
    2. 二叉树的前中后遍历
    3. 二叉树的文件存储,也就是序列化。
    4. 二叉树遍历,描述下层序遍历。
    5. 二维数组,每行递增,每列递增,任意交换其中的两数,发现并恢复。
    6. 二维数组,每行递增,每列递增,实现查找。
    7. 二维数组,每行递增,每列递增,求第k大的数。
    8. 什么样的数据结构可以满足多次插入删除,取最小数,给出时间复杂度。
    9. 介绍二叉树前序遍历非递归遍历算法(手写代码)
    10. 介绍大顶堆和小顶堆
    11. 从一组数中找出和为sum的三个数(leetcode)
    12. 冒泡排序(手写代码)
    13. 写 find 函数,在目标串中匹配模式串(要考虑中文字符的情况)
    14. 写一个二叉树的非递归的后续遍历
    15. 写一个简单的正则匹配表达式(将文本中的123.4匹配出来)
    16. 写个动态规划,最长公共子序列
    17. 判断一个字符串是否为另外一个字符串旋转之后的字符串
    18. 前k大的数
    19. 单链表的翻转
    20. 去掉连续的重复数字,输出新数组,例如:1,2,2,2,1,3,5——> 3,5。
    21. 去除字符串S1中的字符使得最终的字符串S2不包含’ab’和’c’。(Code)
    22. 合法括号匹配
    23. 在一个字符串中,找出最长的无重复字符的字串
    24. 在二叉树结点结构中加一个指针域,使其指向层次遍历的下一个结点,特别地,每一层的最后一个结点为空。(Code)
    25. 堆排序(手写代码)
    26. 堆是怎么调整的。
    27. 复杂链表的复制

    大数据题目

    1. 100亿数字,怎么统计前100大的?
    2. 10亿个url,每个url大小小于56B,要求去重,内存4G。
    3. 1KW句子算相似度(还是那套分块+hash/建索引,但是因为本人不是做这个的,文本处理根本说一片空白,所以就不误导大家了),之后就是一直围绕大数据的题目不断深化。
    4. Q1:给定一个1T的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有5台计算机。请问如何统计词频?
    5. Q2:每台计算机需要计算200G左右的文件,内存无法存放200G内容,那么如何统计这些文件的词频?
    6. Q3:如何将1T的文件均匀地分配给5台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中)
    7. 一个大文件A和一个小文件B,里面存的是单词,要求出在文件B中但不在文件A中的单词。然后大文件A是无法直接存到内存中的。
    8. 一道题目是如果有一个人注册一个qq,如何保证这个qq号码和之前已存在的qq号码不重复呢?
    9. 扔硬币,连续出现两次正面即结束,问扔的次数期望
    10. 有100W个集合,每个集合中的word是同义词,同义词具有传递性, 比如集合1中有word a, 集合2中也有word a, 则集合1,2中所有词都是同义词,对这100W个集合进行归并,同义词都在一个集合当中。
    11. 有几个 G 的文本,每行记录了访问 ip 的 log ,如何快速统计 ip 出现次数最高的 10 个 ip,如果只用 linux 指令又该怎么解决;
    12. 海量数据的topk问题。堆排
    关注公众号 海量干货等你
  • 相关阅读:
    TSQL循环打印一年中所有的日期(WHILE循环)
    给Table加字段的SQL
    [正则表达式]前台JS得到控件ID (该控件被其它控件包住了)
    1.SQL Server中批量更新Object的Owner 2.附加数据库
    转:动态LINQ的几种方法
    转:查看LINQ生成SQL语句的几种方法
    TrimZero方法
    Oracle关联更新语法(TSQL中的update...from)
    Table之间的空隙或Table与父控件之间的空隙怎么去掉?
    自动完成带来的麻烦
  • 原文地址:https://www.cnblogs.com/sowhat1412/p/12734289.html
Copyright © 2020-2023  润新知