字节面经收集

面经一

简要版:
一面:4月22日下午5:00-5:40
两个有序链表合并
K个有序链表合并
两道sql题
二面:4月26日 2:00-2:50
最长连续子序列
基础问题
三面:4月28日 5:00 - 5:40
求平方根
跳台阶
单例模式
工厂模式java

详细版:
字节一面 4月22日下午5:00-5:40
1 算法题 合并链表
leetcode21:https://leetcode-cn.com/problems/merge-two-sorted-lists/
先说思路,第一次面试,有点紧张,说的一塌糊涂。而后又从新说了一遍,迅速写完代码,过了。
2 算法题 合并k个链表
leetcode23:https://leetcode-cn.com/problems/merge-k-sorted-lists/
一开始先问时间复杂度,我立刻回答nlogk,而后用归并的想法解释。
可是太紧张,没有解释清楚,面试官不理解个人作法。
最后急中生智想到了用堆来合并。
面试完后看leetcode, 这题我刷了3遍,每次都是用归并的作法作的。
因此面试的时候有点思惟定势,想了很久才想到用堆。
3
select * from t where b=1;
Select * from t where a=1 and b=1;
问怎么创建索引
先说须要建两个索引,后来反应过来了,建一个联合索引。
4
Select * from t where c=1;
C是非主键索引,问几回磁盘io,b+索引树高度3。
这题哪位大佬能解答一下,我目前还不知道正确答案是啥。web

4月26日 2:00-2:50
0 自我介绍面试

1 最长连续序列
leetcode128:https://leetcode-cn.com/problems/longest-consecutive-sequence/
作过了,秒了。面试官让我测试一下,还好没出问题。
2 String为何不可变
3 聊聊http2.0
问http缓存
4 有没有遇到过死锁,咋解决的
5 项目中中文乱码问题咋解决,知不知道中文乱码的缘由redis

6 java线程间通讯算法

有没有用过java中的exchangesql

7 知不知道负载均衡数据库

8 redis几种数据结构编程

Zset数据结构,怎么排序的设计模式

Redis缓存淘汰策略api

9 业务场景

电脑微信扫码,而后手机点验证,电脑就进入微信。怎么实现

10 反问

4月28日 5:00 - 5:40
0 自我介绍
1 sqrt(x),保证小数点后三位精度
leetcode69变形题:https://leetcode-cn.com/problems/sqrtx/
面试的时候一直在想以前腾讯笔试的时候作的一道题,以为尾数处理太麻烦了。我觉得须要最后保留小数点后三位,想得复杂了。
简单的一道题,写的比较纠结,面试官看我如此纠结,因而就让我全程写代码了。
2 跳台阶,斐波那契数列
剑指offer:https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
3 单例模式,而后面试官问指令重排。
4写个简单工厂模式吧
写了简单工厂

面试官说确实实现了功能,可是有两个问题,一个是依赖关系没有解除,一个是if else。

面经二

我实在是太菜了。。。。很喜欢字节,但是我本身却把握不住这个机会。。。。。明明面试官已经很给面子了,出的题也已经很简单了,惋惜我仍是没抓住。。留下了悔恨的泪水。

  1. 自我介绍+项目
  2. 问了一下专业
  3. 作题
    3.1 二叉树的最大和
    3.2 最长连续数字
    3.3 k个数的和
    3.4 hashmap
    3.5堆排序
    3.6 找零钱
    。。。。 是的 ,就是这么残忍,我都要被怼哭了

二面:

  1. 链表排序
  2. 机器学习相关知识,数据挖掘的基本流程,如何处理特征,如何处理相关性,如何分析数据重要程度
  3. 数据的混乱程度
  4. 数据平台如何搭建

三面:

  1. 全排列的拓展题,n的球的排列问题
  2. 36进制加法
  3. 使用什么语言
  4. volitle的用法
    滚去刷题了。。。。秋招再来,但愿本身秋招能经过。。。在牛客发帖求一个祝福,但愿字节能给我一个机会。。。

面经三

题目所有来自牛客网字节跳动面经,楼主整理了2020年的三十余篇面经,在屡次问到的题目后标注了次数,限于篇幅,答案没有上传,若是牛友们须要但愿点个赞呀😁😁,楼主整理后分次上传答案。 算法题:买卖股票的最佳时机(只能有一次买卖,能够最多两次买卖,不限次数)(4) 算法题(leetcode55题):给一个数组,例如[1,2,3,4,5],a[i]表示在该位置能够向前行走的最大距离,判断是否能够到达数组的最后一个元素。 场景题:让你设计一个微信发红包的api,你会怎么设计,不能有人领到的红包里面没钱,红包数值精确到分。 AB两个排序数组,原地合并数组。(A当中穿插一些无效数字怎么处理?) 剑指原题,剪绳子。 排序数组,平方后,数组当中有多少不一样的数字(相同算一个)。 一个数据先递增再递减,找出数组不重复的个数,好比 [1, 3, 9, 1],结果为3,不能使用额外空间,复杂度o(n) 高考成绩2000万数据,分数0-750,如何快速知道你的排名,如何知道任一分数排名 —>桶排序 (3) 两根香,一根烧完1小时,如何测量15分钟---->开始时一根香两头点着,一根香只点一头,两头点着的香烧完说明过去了半小时,这时将只点了一头的香另外一头也点着,从这时开始到烧完就是15分钟。 两个链表,可能相交,找出相交的节点,给出证实(2) 写一个函数,求平方根,函数参数为目标数字和精度,测试案例 fn(4.1,0.001) fn(501.1,0.001) fn(0.045,0.001) 场景题:需求:谁关注了我,我关注了谁,谁与我互相关注。表该如何设计,索引怎么建。查询语句怎么写 10亿个数字,取最小的100个数 1亿个正整数,范围是0-42亿。求出现次数是2的数字,空间复杂度 剑指offer 从上往下打印二叉树(层序遍历)(2) 蛇形遍历二叉树(2) leetcode 链表求和 给定一个 0-4随机数生成器 如何生成0-6随机数 写代码: 二叉树的最近公共祖先 leetcode 236 稍有不一样,原题的2个节点,面试是多个节点,算法的时间复杂度 (2) 写代码: 二叉树中的最大路径和 leetcode 124 算法:快排(3) 算法:二叉树的前序遍历非递归 算法:二叉树的后序遍历非递归(2) 求数组的最长连续递增数列,如:4, 200, 3, 1, 100, 2。结果是1 2 3 4,也就是说顺序能够打乱。(leetcode 128) 智力题,海盗分金币。 算法:接雨水(leetcode 42) 算法:有一个IP地址库,假设有几十万条ip,如何判断某个ip地址是否在这个库中? 编程题:求二叉树根节点到叶子结点的路径和的最小值(leetcode) 反转链表 ---->反转链表升级版(每k个反转一下)(4) 场景题:2g内存,要求一个10g文件的中位数 LeetCode 59题 螺旋矩阵II(同类:螺旋打印矩阵) 数据结构:(讲解你了解的数据结构)提到heap,让手写heap 算法:中文数字转阿拉伯数字,字符串处理问题 算法:中文数字转阿拉伯数字,字符串处理问题 重建二叉树(剑指offer第7题) 路径总和 leetcode 112及其延伸 (LeetCode113题)给定一个二叉树和一个目标和,找到全部从根节点到叶子节点路径总和等于给定目标和的路径。 单例模式,手写双重检验单例模式 懒汉式,DCL(8) 合并区间 (LeetCode56题) 翻转字符串中的单词 leetcode151原题 而且只能用O(1) extra space 和为s的连续正整数序列(剑指offer57-II) 介绍下二分查找,若是我想在链表中使用二分查找,怎么作比较好?–>跳表 介绍下归并排序,时间复杂度多少 LRU算法知道吗,怎么实现的? 数据库链接池怎么设计? 代码题,版本数字比较,好比"1.10.0"版本比"1.8.1"版本新,不容许使用split等函数 某一个大文件被拆成了N个小文件,每一个小文件编号从0至N-1,相应大小分别记为S(i)。给定磁盘空间为C,试实现一个函数从N个文件中连续选出若干个文件拷贝到磁盘中,使得磁盘剩余空间最小。 场景题:redis设置高并发抢单一的东西,如何避免高并发对一个键进行访问 编程:最大栈 场景题,分布式多个机器生成id,如何保证不重复? B+树和红黑树, 红黑树和通常的平衡二叉树,增、删、改、查的过程和效率、时间复杂度 递增数组,找出和为k的数对 二叉树各层节点数,递归、非递归,时间、空间复杂度 输出给定数字下一个比它大的数字,好比输入:1234, 输出 1243。 算法:输入List,删除当中形如”1_”的,返回原来的List (2) 一个无序数组,从小到大找到第一个缺的数,好比[8 2 4 3 6 9 7 11 12],第一个缺的就是5 (2) 场景题:一个硬币,正面几率0.7,反面几率0.3,如今有一瓶水,怎么掷能让两我的公平的喝到水(4)---->抛两次,先正后反A喝,先反后正B喝 两个栈实现一个队列 二叉树右视图(2) 几率:54张扑克牌,平均分红3份,大小王在一份的几率 有序有重复数组,给定target肯定范围 3sum (2) 注意时间复杂度 扫码登陆是如何实现的? 思考题:64匹马,8个跑道,选跑最快的4匹马须要比赛多少次。 几率:两我的轮流抛硬币,先抛到正面的赢,问先抛的人赢的几率(2) 三个线程循环打印ABC 数组中第K大的数(LeetCode215题) top k,堆的各类时间复杂度 狼和羊的故事 二叉排序树找第k大的元素 链表相加,反转过来怎么加 穿墙术,三维的bfs,相似走迷宫 有一个会议室里有一个录音麦,有n我的抢着说话,麦只能录到声音最大的人,给定每一个人开始的说话时间s,结束的说话时间t,说话音量vol,而后求这个麦最后录到的声音序列。 数据范围:n 2e5。 s,t,vol 1e9 场景设计:系统中有几万个任务须要在各自的特定时刻触发执行,怎么作? 三道leetcode原题:236,240,面试题48略微更改 一个很复杂的场景,大概是微博用户有个关注列表,以及知道各类大V的动态,设计数据结构啥的,到最后在用户这边显示一个更新微博列表。 场景题:游戏里,一个玩家可能吃到不少种debuff,每一个debuff有必定持续时间。给你一个定时器,怎么设计数据结构,来维护玩家的debuff状态? 红黑树,B+树,跳表应用场景 代码题:leetcode 688 棋盘算几率问题 情景题,一个5T的文件,里面全是id,1-10^9 ,如何计算不一样id的个数 算法题,一个有序数组,从随即一位截断,把前段放在后边,如 4 5 6 7 1 2 3求中位数 算法题,一个形如 123456789101112……的字符串,输入一个n(很大很大),输出字符串第n个字符 算法题,一辆公交车,有m站,最多坐n人,输入一路上票的信息(即上车下车站),输出会不会超载 算法题,全排列 坐标系中有一个球桌,四个角坐标:(0,0), (0,4), (2,4), (2,0),一颗球在(1,1),请问从哪些角度能够射入洞内(可无限次碰撞)? 求彻底二叉树的节点个数,小于O(n),并分析复杂度 链表实现一个栈 (1) Leetcode 134 (2)Leetcode 860。 算法:手写jdk中的优先级队列 PriorityQueue(最小堆) 剑指offer62:圆圈剩下的数字(约瑟夫环问题) 给出一个数组nums,一个值k,找出数组中的两个下标 i,j 使得 nums[i] + nums[j] = k. 说说你知道的设计模式,说说项目里用到的设计模式,说说策略模式,设计一个下棋的场景问如何结合设计模式使用,设计模式何时继承,何时委托? 如下代码题输出什么?(巨坑,输出100,从泛型+向上转型+map+equals原理上想) 1 2 3 4 5 6 Map<Short, String> map = new HashMap<>(); for(short i = 0; i <100; i++) { map.put(i, String.valueOf(i)); map.remove(i-1); } System.out.println(map.size());