【字节青训pre】后端笔试练兵

news2024/11/19 5:54:16

文章目录:

  • 零、前言
  • 一、选择题
  • 二、编程题
    • 1、36进制转换
      • a) 题目
      • b) 解题思路

零、前言


好久没更博客了 , 暑假参加字节青训营,记录一下备战经历,水水博客 。
因该博客持续更新,文中部分链接是写该博客时预存占坑位的,如有忘记补充的,烦请大佬踢我一下!


字节青训营_宣传海报_2023



一、选择题



数据结构与算法部分

1、以下哪些排序算法是不稳定的?
A. 快速排序
B. 归并排序
C. 基数排序
D. 堆排序

答案:AD
选项A 解析请点击 👉👉👉【深度剖析】 快速排序为什么不稳定?!
选项D 解析请点击 👉👉👉【深度剖析】堆排序为什么不稳定?!
不稳定的排序算法有 选择排序、希尔排序、堆排序、快速排序

助记(选择排序)艾(希尔)(堆排序)攻(快速排序)下路不稳(不稳定)。 选艾希堆攻速下路不稳 !


2、在最好情况下,下列排序算法中,哪些排序算法所需比较的关键次数最少?
A. 冒泡
B. 归并
C. 快速
D. 直接插入

答案:AD
A. 冒泡 排序,最好情况 是待排序序列已经是有序的情况,此时冒泡排序仍然需要进行一轮比较来确认序列已经有序,但不需要进行任何元素的交换操作。假设待排序序列的长度为n,冒泡排序算法只需要进行一轮比较,所需比较的 关键次数n-1 次。
B. 归并 排序,最好情况 为,每次合并操作时,两个子序列的长度相等,并且每个元素只需比较一次即可确定其位置。因此,对于长度为n的序列,需要进行log2(n)次合并操作,即 归并排序算法所需比较的 关键次数n * log2(n) 次。
C. 快速 排序,最好情况 为,每次选择的基准元素都刚好是当前子数组的中位数,将数组均匀地分割成两个大小相等的子数组。最终完成排序时,需要进行log₂(n)次分割,每次分割都需要n/2-1次比较,因此总共所需比较的 关键次数(n/2-1)log₂(n) 次。
D. 直接插入 排序,最好情况 为 待排序的数组已经是按照升序排列,这种情况下,每个元素只需与它前面的一个元素进行比较。此时所需比较的 关键次数n-1次。

更多排序内容可见👉👉👉 【基础算法】细说十大排序!


3、关于红黑树以下说法正确的是?
A. 红黑树是平衡二叉树,任意两个子树的高度差不超过 1
B. 红黑树从一个节点到该节点的子孙节点的所有路径上包含相同数目的红色节点
C. 红黑树插入节点时最多经过 3 次旋转达到平衡
D. 红黑树进行插入操作时需要解决红红冲突

答案:CD
需要明确,红黑树是一种自平衡的二叉搜索树,具有以下性质:

  1. 根节点和所有叶子结点(NIL节点)是黑色。(根叶黑)
  2. 每条从根到叶子的路基上不能出现连续两个红色节点。(不红红)
  3. 从任一节点到所有叶子结点的路径上的黑色节点数量相同。(黑路同)

A. 红黑树并不是严格的平衡二叉树,而是近似平衡的二叉树。从根节点到任意叶子节点的 最长路径不超过最短路径两倍 ,而不是限制子树的高度差不超过 1。
B.从一个节点到该节点的子孙节点的所有路径上包含相同数目的 黑色 节点, 从而 保证了红黑树的黑色平衡性。
C .插入最多2次旋转达到平衡、删除最多3次旋转达到平衡;所以红黑树最多三次旋转达到平衡
D. 在红黑树中,当插入一个红色节点导致红色节点与其父节点均为红色时,就会产生红红冲突。解决红红冲突的操作称为红黑树的插入修复操作,通常包括旋转和颜色调整等步骤。

关于红黑树内容,详细可见 👉👉👉【深情数据结构】红黑树 | 你就是我心中的红黑树,平衡了我的感情,让我在爱的世界找到根基


4、关于排序算法以下结论正确的是?
A. 归并排序任何情况下都能保持时间复杂度为 O(n*log n)
B. 插入排序时间复杂度为 O(n2),所以在任何情况下都比快速排序慢
C. 快速排序的最坏情况下的时间复杂度为 O(n2)
D. 希尔排序任何情况下都比插入排序更快

答案:AC
B.对于非常小的输入规模或者已经接近有序的输入序列,插入排序可能会表现得更好。
D.非常小的输入规模或者已经接近有序的输入序列,或者输入数据具有一定的分布特性,使得希尔排序的间隔序列不利于快速减少逆序对的数量,插入排序可能比希尔排序更快

更多排序可见👉👉👉 【基础算法】细说十大排序!


5、以下哪些是解决哈希冲突的手段?
A. 拉链
B. 开放地址
C. 再散列
D. 滑动窗口

答案:ABC
ABC 详见 👉👉👉【算法进阶】哈希冲突的救赎
D.滑动窗口 主要用于处理数据流或时间序列的技术,并非解决哈希冲突的手段


6、关于 MD5 以下哪些说法是正确的?
A. MD5 可以用于加密密码
B. MD5 不可逆
C. 对于不同的输入, MD5 一定输出不一样的结果
D. 对于不同长度的输入,MD5 一定输出相同长度的结果

答案:BD
C.MD5 可能输出相同的结果


7、以下哪些是操作系统中堆和栈的区别?
A. 增长方向
B. 空间大小
C. 分配方式
D. 管理方式

答案:ABCD


8、常见的存储系统 IO 性能优化方式有哪些?
A. 尽可能多设计随机读写逻辑
B. 预读
C. 减少 IO 路径上的内存拷贝
D. batch 写入

答案:BCD


9、以下哪些操作可能触发本地 CPU cache 失效?
A. 本地读取
B. 本地写入
C. 远端读取
D. 远端写入

答案:D


10、Client 在使用 Https 协议访问网站进行通信的过程中,以下说法正确的是?
A. 只用到了对称加密技术
B. 只用到了非对称加密技术
C. 没有用到任何加密技术
D. 同时用到了对称加密和非对称加密技术

答案:D


11、建立 TLS1.2 连接需要几次握手?
A. 3
B. 4
C. 6
D. 7

答案:D


12、在 MTU=1500 字节的以太网中,TCP 报文的最大分段大小为多少字节?
A. 1440
B. 1460
C. 1420
D. 1480

答案:B
MTU这个概念是指数据帧中有效载荷的最大长度,不包括帧首部的长度。所以TCP报文的有效载荷=1500B-20B(IP数据报首部)-20B( TCP报文首部)=1460


13、以下哪些是 RDBMS 跟常见的对象存储系统的不同点?
A. 数据库支持事务
B. 数据库向用户暴露 put/get 接口
C. RDBMS 一般存储结构化数据
D. 数据库里的数据不能修改,只能删除后重新写入

答案:AC


14、MySQL 数据库中是通过以下哪种日志实现 MVCC 机制的?
A. Undo Log
B. Redo Log
C. Binary Log
D. Slow Log

答案:A


15、关于 Go 语言以下结论正确的是?
A. 在多核机器中,核数越多,使用多个 goroutines 写入 sync.Map 的性能越好
B. 只调用一次 rand.Seed,则之后 rand.Int 的生成序列是固定的
C. 放入 sync.Pool 中的结构体可能随时被回收
D. Goroutine 的栈不仅会增长而且还会缩容

答案:BCD


16、以下哪些是 Go 支持的指针运算?
A. 通过 & 取地址
B. 对指针进行自增
C. 下标运算
D. 通过 * 解引用

答案:AD


17、Go 中关于整型切片的初始化,以下正确的是?
A. s := []int{1, 2, 3, 4, 5}
B. s := make([]int)
C. s := make([]int, 0)
D. s := make([]int, 5, 10)

答案:ACD


18、关于经典的 Skiplist(原始论文实现)以下结论正确的是?
A. 每次的查找都从 head 节点的第 0 层(最底层)开始寻找
B. skiplist 的插入节点的层级都是固定的
C. skiplist 的元素都是有序的
D. skiplist 平均查询时间复杂度为 O(log n)

答案:CD

  • 每次的查找都从 head 节点的最顶层开始查找
  • 跳表的插入节点的层级是随机的,使用了randomLevel概率算法来确定节点的层级




二、编程题




1、36进制转换


a) 题目

实现一个 36 进制的加法 0-9 a-z。
示例
输入:[“abbbb”,“1”],输出:“abbbc”


b) 解题思路


先转换为 十进制,加减后,再转换为 三十六进制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/756235.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【雕爷学编程】Arduino动手做(147)---QMC5883L三轴罗盘模块2

37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的&am…

基于Python+Django+mysql+html学生成绩管理系统

基于PythonDjangomysqlhtml学生成绩管理系统 一、系统介绍二、功能展示1.用户登陆2.主页3.年级管理4.班级管理5.课程管理6.学生管理7.班级管理8.学生管理 三、其它系统四、获取源码 一、系统介绍 成绩录入测试账号:test 密码:123 在线成绩录入&#xff…

redis -速成

目录 (一)认识 Redis 1.1数据库分类 1.2 什么是Redis 1.2.1 redis简介 1.2.2 谁在用Redis 1.2.3 怎么学redis 1.2.4 Redis的安装 2 数据类型 2.1 概况 2.2 String类型 2.2.1 常用的命令 2.2.2 非常用命令 2.2.3 举例 2.2.4应用场景&#xf…

面试之双亲委派原理

一面腾讯提问:如果我自定义一个 new Object 类,请问这个类是否会被加载? 回答:不会,因为双亲委派,向上加载。回答的过程中磨磨唧唧。当然最后一面也是没有过。 总之一句话:向上加载,向下委派. …

【Linux操作系统】死锁

文章目录 死锁的概念产生死锁问题的必要条件如何避免死锁 有两个小朋友站在超市的零食区,手上各拿着五毛钱,他们直勾勾的看着眼前的棒棒糖,问了问阿姨,这个棒棒糖要一块钱。所以a对b说:“你把你的五毛钱给我买棒棒糖”…

Spring Cloud Hystrix简单实用

文章目录 一、简介二、快速开始1、pom依赖2、启动类注解3、服务降级配置HystrixCommand4、配置熔断策略5、测试 三、原理分析四、实际使用 一、简介 Hystrix,英文意思是豪猪,全身是刺,刺是一种保护机制。Hystrix也是Netflflix公司的一款组件。…

Controller配置总结与RequestMapping

1.Controller 2.ResquestMapping 就一个父级目录与自己目录的一个关系!!!理清楚就好了,很好理解!

MURF20100CTR-ASEMI快恢复对管MURF20100CTR

编辑:ll MURF20100CTR-ASEMI快恢复对管MURF20100CTR 型号:MUR20100CTR 品牌:ASEMI 芯片个数:2 封装:TO-220F 恢复时间:50ns 工作温度:-50C~150C 浪涌电流:200A 正向电流&am…

[JVM] 2. 类加载子系统(1)-- 内存结构、类加载子系统概述

一、内存结构 类加载子系统的职责是:加载class文件到内存中。 完整的内存结构如下: 二、类加载过程 类加载过程总体分为Loading(加载)、Linking(链接)、Initialization(初始化)三…

【力扣每日一题】2023.7.15 四数之和

题目: 示例: 分析: 这题和本月出过的每日一题:两数之和,三数之和类似。 不夸张的说只要把三数之和的代码拿来再套层for循环改改就可以了。 不过我这里还是简单捋一捋思路,题目给一个数组,要求…

玩转数据可视化之R语言ggplot2:(十四)层级布局(一层一层增加你的绘图元素,使绘图更灵活)

【R语言数据科学可视化篇】 🌸个人主页:JOJO数据科学📝个人介绍:统计学top3高校统计学硕士在读💌如果文章对你有帮助,欢迎✌关注、👍点赞、✌收藏、👍订阅专栏✨本文收录于【R语言数据科学】本系列主要介绍R语言在数据科学领域的应用包括: R语言编程基础、R语言可…

代码随想录二刷day53 | 动态规划之子序列 1143.最长公共子序列 1035.不相交的线 53. 最大子序和

day53 1143.最长公共子序列1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组 1035.不相交的线53. 最大子序和1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如…

数据结构_进阶(1):搜索二叉树

1.内容 建议再看这节之前能对C有一定了解 二叉树在前面C的数据结构阶段时有出过,现在我们对二叉树来学习一些更复杂的类型,也为之后C学习的 map 和 set 做铺垫 1. map和set特性需要先铺垫二叉搜索树,而二叉搜索树也是一种树形结构2. 二叉搜…

分布式事务-本地消息表

本地消息表方案核心思路 需要分布式处理的任务通过消息日志的方式来异步执行。消息日志可以存储到本地文本、数据库或消息队列,再通过业务规则自动或人工发起重试。 方案核心具体实现 包括数据模型和核心逻辑 业务规则 定义业务的消息配置如topic 、key、tag …

计算机网络基础-OSI七层模型 和 TCP/IP四层模型的对比

OSI七层模型 和 TCP/IP四层模型的对比 OSI七层模型: 理论上的网络通信模型 记忆: (物、链、网、输、会、示、用) TCP/IP四层模型: 实际上的网络通信标准 (1) 七层网络体系结构各层的主要功能: 应用层: 最上层的&am…

linux X系统 X窗口系统(X Window System)

Xorg是一个开放源代码的跨平台的图形系统,它是UNIX和Linux的主要图形系统,它的前身是XFree86。 Xorg是在桌面环境中提供显示和图形输入设备支持的主要架构。 它支持多种输入设备,如键盘,鼠标,触摸屏,手写板…

河南理工大学高校专区入驻飞桨AI Studio,优质教育资源等你来学!

近日,河南理工大学高校专区在飞桨人工智能学习与实训社区AI Studio上线,双方将携手搭建人工智能教学实训平台专区,汇集优质教学实训资源,校企共同培育复合型 AI 人才,为国家输送高质量人才,促进国家智能化进…

放射医学、影像医学、数字图像技术(采集和处理)PACS源码

PACS是一个涉及放射医学、影像医学、数字图像技术(采集和处理)、计算机与通讯、C/S体系结构的多媒体数据库管理信息系统,涉及软件工程、图形图像的综合及后处理等多种技术,是一个技术含量高、实践性强的高技术复杂系统。 系统概述: 1&#x…

编译原理(双语) 期末复习

在我的博客查看: https://chenhaotian.top/study/compilation-principle-final-review/ 编译原理(双语) 期末复习 注意:部分资料来自 chouxianyu.github.io,版权归原作者所有。 本文图片较多,加载速度受…

轻松实现文件改名——批量将日语文件名翻译成中文命名

文件改名是在处理大量文件时常见的需求,特别是当文件名用外语表示时,不太方便理解或分类。本教程将介绍如何使用便捷工具,批量将日语文件名翻译成中文命名,以提高文件的可读性和管理效率。 首先,第一步进入文件批量改…