头条/字节跳动 后端开发面经

13号面的后端开发,个人比较擅长Java所以就是比较偏Java的问题。基础的问题就不说了,讲下问到的几个还记得的问题。

1. 说到了HashMap,讲到了扩容机制。然后扯到了一个情况让分析下这个的时间复杂度。就是每次扩容2倍的空间,那么依次put进n个数据,整体的时间复杂度是多少。

2. 二叉树从根到叶子的路径总和是否存在指定的值,很简单的问题。

3. 提取两个海量url数据中的相同值,不准用Hash分治。

4. 给了一段Java业务代码,说其中存在的问题。

5. 微博刷新选取所有关注人的最新n条记录如何取。

6. 堆排序实现。

7. 给一个出栈序列长度为n,有多少种入栈的可能。

8. 股票买入时机,限制最多两次。

9. 一个数组,每个位置的值对应下标。重新排列,要求对应位置上不能有同下标相同的值,即原先a[0]=0,重排后a[0]不可以等于0。输出总共有多少种重新排列的方法。

还有一些基础的记不清了。总体面试官还是比较好的,卡壳的时候会给你时间思考不会push你,提出的方法有缺陷会指出让你继续解决。

目前等待结果中,看了很多牛客的面经感觉很有帮助,也分享下自己的希望攒点人品。


#字节跳动##面经#
全部评论
楼主你第八题做出来了?第三题怎么做?
点赞 回复 分享
发布于 2018-10-15 21:18
第五题怎么做啊?
点赞 回复 分享
发布于 2018-10-18 09:51
9. 一个数组,每个位置的值对应下标。重新排列,要求对应位置上不能有同下标相同的值,即原先a[0]=0,重排后a[0]不可以等于0。输出总共有多少种重新排列的方法。 动态规划: 假设增加了一个a[n]=n,那他一定要与前面某个交换 假设前面 n-1 个已经按照要求排好了,(n-1)f(n-1) 假设前面 n-1 个中有一个 a[k]=k,其他 n-2 个排好了,则交换 n和k : (n-1)f(n-2) f(n)=(n-1)(f(n-1)+f(n-2))         不知道对不对。。。
点赞 回复 分享
发布于 2019-02-27 19:02
第9题: 首先说明f(1)=0,f(2)=1,f(3)=2,f(4)=9.....自己手动推算,即可得。 分为2种情况: 1.前n-1个数已经都满足条件了:(n-1)*f(n-1) 2.前n-1个数中只有一个没有满足条件:(n-1)*f(n-2),这个没有满足条件的数有n-1中可能的选择 所以f(n)=(n-1)*(f(n-1)+f(n-2)). 注意:为什么前n-1个数中不能有2个数不满足条件?因为这两个数最后都会个第三个数进行排序,就回到了第一种情况了。
点赞 回复 分享
发布于 2019-03-27 09:11
所以第七题有人知道吗?我只知道给定一个入栈序列,有多少种出栈。。。
点赞 回复 分享
发布于 2019-03-28 22:03
五道算法题我的天。都写了吗?
点赞 回复 分享
发布于 2019-03-28 23:48
第三题是用二进制map吗
点赞 回复 分享
发布于 2019-10-28 18:51
第5题怎么做啊大佬,redis吗
点赞 回复 分享
发布于 2019-10-28 19:10

相关推荐

11-20 18:25
安徽大学 Java
点赞 评论 收藏
分享
评论
1
135
分享
牛客网
牛客企业服务