8.29 哔哩哔哩笔试面经 - 编程题 & 题解

笔试系统:牛客网

投递岗位:2024后端开发

题目类型:9 道单选 (2分或3分每题)+ 11道多选 (3分每题)

3道大题(1道 SQL 10分, 2道编程题 每题20分) 共 50分

UP主筛选 (10分)

请在UP主视频数据表中,筛选发布视频平均时长大于300秒的UP主,按UP主视频平均时长倒序,视频ID升序,返回第3行到6行的视频ID。

输入

CREATE TABLE `uploader_video_record`  (
  `video_id` bigint PRIMARY KEY,
  `uploader_id` bigint,
  `video_duration` int
);

INSERT INTO `uploader_video_record` 
VALUES 
(1, 101, 60),
(2, 102, 600),
(3, 103, 310),
(4, 101, 120),
(5, 104, 3200),
(6, 102, 330),
(7, 103, 290),
(8, 105, 290),
(9, 101, 180),
(10, 103, 320);

输出

video_id

6

3

7

10

说明

UP主视频数据表中,发布视频平均时长大于300秒的UP主ID为102、103、104。将这些UP主对应视频数据,按UP主视频平均时长倒序、视频ID升序,取第3行到6行的视频ID为6、3、7、10。

题解

SELECT video_id
FROM (
  SELECT
    video_id,
    uploader_id,
    video_duration,
    (SELECT AVG(video_duration) FROM uploader_video_record sub WHERE sub.uploader_id = main.uploader_id) AS avg_duration
  FROM uploader_video_record main
) AS avg_data
WHERE avg_duration > 300
ORDER BY avg_duration DESC, video_id ASC
LIMIT 4 OFFSET 2;

两个字符串的最小ASCII删除和(20分)

力扣原题: **********************

给定两个字符串s1s2,返回 使两个字符串相等所需删除字符的 ASCII 值的最小和

示例 1:

输入: s1 = "sea", s2 = "eat"
输出: 231
解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。
在 "eat" 中删除 "t" 并将 116 加入总和。
结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。

示例 2:

输入: s1 = "delete", s2 = "leet"
输出: 403
解释: 在 "delete" 中删除 "dee" 字符串变成 "let",
将 100[d]+101[e]+101[e] 加入总和。在 "leet" 中删除 "e" 将 101[e] 加入总和。
结束时,两个字符串都等于 "let",结果即为 100+101+101+

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论
笔试编程题解专栏前50个免费订阅,欢迎订阅,专栏会持续努力更新
1 回复 分享
发布于 2023-09-04 16:26 湖北
二叉树这题要自己定义类和插入方法吧
点赞 回复 分享
发布于 2023-09-15 18:57 辽宁
看看俺
点赞 回复 分享
发布于 2023-09-02 10:59 广东
java 编程笔试题有疑问欢迎来聊
点赞 回复 分享
发布于 2023-09-01 12:22 湖北
select u1.video_id from uploader_video_record u1 join ( select uploader_id,avg(video_duration) avg_duration from uploader_video_record u2 group by uploader_id having avg(video_duration)>300 ) u3 on u1.uploader_id=u3.uploader_id order by avg_duration desc,u1.video_id asc limit 2,4;
点赞 回复 分享
发布于 2023-09-01 08:16 陕西
借楼,多个offer多个选择
点赞 回复 分享
发布于 2023-08-31 16:38 广东

相关推荐

小结 生活服务的面试,总的时间是1h,半小时问题,问题全部围绕项目,有涉及一丢丢八卦啥的,不难,基本都能想出来。半小时手撕(我没写出来)## 项目问题项目背景1.字节青训营什么时候,在哪参加,从哪里获取信息来源?怎么参加,几个人参加?参加的人多不多?2.你在项目中的职责是什么样的?3.项目部署在哪了,机器大概是什么配置?项目架构0.有没有项目的架构图?没有的话分层次描述一下答:接入层、后端业务层、数据存储层、基础设施层1.nginx的负载均衡,不同配置的机器 权重怎么设置?2.开发环境下如何进行微调呢?3.压测的工具是什么?怎么压测?4.压测的瓶颈怎么排查?项目亮点、难点1.项目中哪个部分的技术值得拿出来讨论讨论的?2.海量并发的时候,redis、mq、mysql分别的功能是什么?3.mq虽然降低了访问数据库的频率,但是依然有多个请求?要如何保证mysql的安全访问?4.redis如果满了,将热key淘汰了怎么办?5.怎么做性能排查?性能排查的时候,性能排查遇到过哪些卡性能的情况?6.redis、mysql的集群怎么部署?采用的什么架构?## 手撕题目描述现在给你一个map(key和value的size未知),对其进行批量处理。map   key是商品类别(string),value是商品id(int64),要求处理之后的map,key和value的size都在控制在5以内,
点赞 评论 收藏
分享
前不久通过了字节生活服务后端开发面试,准备做个复盘,分享下一二三面还有加面的面经。一面基本情况- 岗位:字节跳动生活服务后端开发- 形式:线上视频面- 时长:差不多1小时面试过程自我介绍(3分钟左右)一开始面试官简单说了下自己是谁,然后就让我做自我介绍。我大概讲了3分钟,主要说自己的学校、学的专业,还有做过的两个后端项目,重点提了用的技术栈和我负责的核心部分,比如微服务拆分、数据库设计这些。项目深挖(20分钟)面试官主要盯着我简历里的两个项目问,挖得还挺细的。第一个是分布式电商系统:- 先让我讲讲整体架构,我就从前端怎么接入、后端业务怎么分模块、数据存在哪、缓存怎么用这些方面说的。比如把订单、商品、用户拆成了独立的微服务,用RPC框架通信,这样改一个模块不影响其他的。- 还问我为啥选MySQL和Redis,我说MySQL处理事务、保证数据一致比较靠谱,Redis当缓存能扛高并发,查数据快。- 然后问我项目里遇到的最大问题,我说是高并发下库存超卖了。当时排查了半天,最后用Redis搞了个分布式锁,先在缓存里扣库存,再慢慢同步到数据库,才算解决。第二个是在线学习平台的后端:- 面试官对用户登录这块感兴趣,我就说用了JWT,用户登录成功给个token,后面请求带着token就能验证身份。权限管理用的是RBAC模型,学生、老师、管理员能操作的功能不一样。- 还问了性能优化,我说给数据库加了索引,慢查询日志里的语句都调了调;有些接口加了缓存,减少数据库压力;发邮件这种费时间的操作,用RabbitMQ搞成异步的,用户不用等着。基础知识(20分钟)这块主要考Java、数据库和计算机网络,都是基础但挺重要的点。Java方面:- 问了多态怎么实现的,我说重写、重载加上动态绑定,举了个父类引用指向子类对象的例子。- 还问了HashMap底层,我就说JDK1.8之后是数组加链表,链表太长了会变成红黑树,这样查起来快。哈希冲突就是用链表解决的,同一个位置的元素串起来。数据库:- 索引类型和用法,我说了主键索引、唯一索引这些,比如查用户ID的时候用主键索引最快,联合索引要注意最左匹配原则。- 事务的ACID特性,原子性、一致性这些都解释了下,还说了四个隔离级别,以及可能出现的脏读、不可重复读问题。计算机网络:- TCP和UDP的区别,我说TCP是连了线的,可靠但慢点,像发邮件、传文件用得多;UDP不用连线,快但可能丢包,直播、游戏常用。- 常见的HTTP状态码,200是成功,404是页面找不到,500是服务器出问题,这些都答上来了。算法题(15分钟)面试官给了道题:给一个数组,找出两个数相加等于目标值的所有组合。比如数组[2,7,11,15],目标9,结果就是[(2,7)]。我先跟面试官说了思路,用哈希表存每个数的位置,遍历的时候看目标值减当前数的结果在不在表里,在的话就是一对。然后在共享文档里写代码,还注意了数组为空的情况。写完后面试官让我分析时间和空间复杂度,我说遍历一次是O(n),哈希表占O(n)的空间,他点点头没说啥。开放性问题(5分钟)最后问我平时怎么学新技术,我说看看官方文档、技术博客,遇到问题上论坛搜搜,再自己动手做个小项目练手。还说会记笔记,把踩过的坑总结下来,面试官听了说挺好的。有人想进字节,可以找我内推,我帮你写内推推荐语,写内推语可以优先进面,进来才知道只填内推码没用😂内推码投递后可以私信我写内推语https://job.toutiao.com/s/syPe3tmPCw0
字节跳动一面1332人在聊
点赞 评论 收藏
分享
评论
22
88
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务