华为资深技术官整理出的“算法面试宝典”下载量已突破40W!不服都不行

  • 如何把链表相邻元素翻转

  • 如何把链表以K个结点为一组进行翻转

  • 如何合并两个有序链表

  • 如何在只给定单链表中某个结点的指针的情况下删除该结点

  • 如何判断两个单链表(无环)是否交叉

  • 如何展开链接列表

第二部分:栈、队列与哈希表

  • 如何实现栈

  • 队列应该怎么实现

  • 栈的所有元素应该怎么翻转

  • 如何根据入栈序列判断可能的出栈序列

  • 如何用O(1)的时间复杂度求栈中最小元素

  • 如何用两个栈模拟队列操作

  • 如何设计一个排序系统

  • 如何实现LRU缓存方案

  • 如何从给定的车票中找出旅程

  • 如何从数组中找出满足a+b=c+d的两个数对

第三部分:二叉树

  • 叉树基础知识

  • 如何把一个有序的整数数组放到二叉树中

  • 如何从顶部开始逐层打印二叉树结点数据

  • 如何求一棵二叉树的最大子树和

  • 如何判断两棵二叉树是否相等

  • 如何把二叉树转换为双向链表

  • 如何判断一个数组是否是二元查找树后序遍历的序列

  • 如何找出排序二叉树上任意两个结点的最近共同父结点

  • 如何复制二叉树

  • 如何在二叉树中找出与输入整数相等的所有路径

  • 如何对二叉树进行镜像反转

  • 如何在二叉排序树中找出第一个大于中间值的结点

  • 如何在二叉树中找出路径最大的和

  • 如何实现反向DNS查找缓存

第四部分:数组

  • 如何找出数组中唯一的重复元素

  • 如何查找数组中元素的最大值和最小值

  • 如何找出旋转数组的最小元素

  • 如何找出数组中丢失的数

  • 如何找出数组中出现奇数次的数

  • 如何找出数组中第k小的数

  • 如何求数组中两个元素的最小距离

  • 如何求解最小三元组距离

  • 如何求数组中绝对值最小的数

  • 如何求数组连续最大和

  • 如何找出数组中出现一次的数

  • 如何对数组旋转

  • 如何在不排序的情况下求数组中的中位数

  • 如何求集合的所有子集

  • 如何对数组进行循环移位

  • 如何在有规律的二维数组中进行高效的数据查找

  • 如何寻找最多的覆盖点

  • 如何判断请求能否在给定的存储条件下完成

  • 如何按要求构造新的数组

  • 如何获取最好的矩阵链相乘方法

  • 如何求解迷宫问题

  • 如何从三个有序数组中找出它们的公共元素

  • 如何求两个有序集合的交集

  • 如何对有大量重复的数字的数组排序

  • 如何对任务进行调度

  • 如何对磁盘分区

第五部分:字符串

  • 如何求一个字符串的所有排列

  • 如何求两个字符串的最长公共子串

  • 如何对字符串进行反转

  • 如何判断两个字符串是否为换位字符串

  • 如何判断两个字符串的包含关系

  • 如何对由大小写字母组成的字符数组排序

  • 如何消除字符串的内嵌括号

  • 如何判断字符串是否是整数

  • 如何实现字符串的匹配

  • 如何求字符串里的最长回文子串

  • 如何按照给定的字母序列对字符数组排序

  • 如何判断一个字符串是否包含重复字符

  • 如何找到由其他单词组成的最长单词

  • 如何统计字符串中连续的重复字符个数

  • 如何求最长递增子序列的长度

  • 求一个串中出现的第一个最长重复子串

  • 如何求解字符串中字典序最大的子序列

  • 如何判断一个字符串是否由另外一个字符串旋转得到

  • 如何求字符串的编辑距离

  • 如何在二维数组中寻找最短路线

  • 如何截取包含中文的字符串

  • 如何求相对路径

  • 如何查找到达目标词的最短链长度

第六部分:基本数字运算

  • 如何判断一个自然数是否是某个数的二次方

  • 如何判断一个数是否为2的n次方

  • 如何不使用除法操作符实现两个正整数的除法

  • 如何只使用++操作符实现加减乘除运算

  • 如何根据已知随机数生成函数计算新的随机数

  • 如何判断1024!末尾有多少个0

  • 如何按要求比较两个数的大小

  • 如何求有序数列的第1500个数的值

  • 如何把十进制数(long型)分别以二进制和十六进制形式输出

  • 如何求二进制数中1的个数

  • 如何找最小的不重复数

  • 如何计算一个数的n次方

  • 如何在不能使用库函数的条件下计算正数n的算术平方根

  • 如何不使用^操作实现异或运算

  • 如何不使用循环输出l~100

第七部分:排列组合和概率

  • 如何求数字的组合

  • 如何拿到最多金币

  • 如何求正整数n所有可能的整数组合

  • 如何用一个随机函数得到另外一个随机函数

  • 如何等概率地从大小为n的数组中选取m个整数

  • 如何组合1、2、5这三个数使其和为100

  • 如何判断还有几盏灯泡还亮着

第八部分:大数据

  • 如何从大量的url中找出相同的url

  • 如何从大量数据中找出高频词

  • 如何找出某一天访问百度网站最多的IP

  • 如何在大量的数据中找出不重复的整数

  • 如何在大量的数据中判断一个数是否存在

  • 如何查询最热门的查询串

  • 如何统计不同电话号码的个数

  • 如何从5亿个数中找出中位数

  • 如何按照 query 的频度排序

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

三面蚂蚁金服成功拿到offer后,他说他累了

三面蚂蚁金服成功拿到offer后,他说他累了

多的IP

  • 如何在大量的数据中找出不重复的整数

  • 如何在大量的数据中判断一个数是否存在

  • 如何查询最热门的查询串

  • 如何统计不同电话号码的个数

  • 如何从5亿个数中找出中位数

  • 如何按照 query 的频度排序

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

[外链图片转存中…(img-wJ16ErdY-1719190855257)]

[外链图片转存中…(img-n4E8J9QG-1719190855258)]

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值