字节跳动后端面试,笔试部分

news/2024/5/22 6:41:48

var code = "7022f444-ded0-477c-9afe-26812ca8e7cb"

背景

笔者在刷B站的时候,看到了一个关于面试的实录,前半段是八股文,后半段是笔试部分,感觉笔试部分的题目还是挺有意思的,特此记录一下。

笔试部分

  • 问题1:SQL
    在这里插入图片描述
    这题考的是 union all 的用法,在这题中就是合并两个查询的结果,但是要注意,union all 合并完的效果是不做任何改变,直接拼在一起,这个要和 union 区分开,union 是会对合并的结果进行去重的,在性能上要劣于 union all,最有意思的还是这个第二问,它需要在这个初始的 SQL 上做改变,来实现查出 A 表的 a 值总次数和 B 表的 a 值总次数,我一开始看的很是懵逼,后来想想肯定不能在 select 这个方面是做文章,而这段 SQL 的特别之处就是使用了 union all 了,往这方面去向,可以得到这样一段 SQL

    SELECT 'a' AS table_name, COUNT(a) AS a_count FROM a
    UNION ALL
    SELECT 'b' AS table_name, COUNT(a) AS a_count FROM b;
    

    查询的结果确实是符合要求的,也结合了 union all 的用法,后续视频里的面试管并没有继续说这个 SQL 题了,这一问就也当作 结束了吧,然后就是最后一问,如果清楚 union all 的用法,那么 count(distinct a) 就是对合并的结果去重了,相当是用了 union 了,所以本质就是问 union 和 union all 的区别和联系:画个图就很好理解了
    在这里插入图片描述

  • 问题2:算法题
    在这里插入图片描述
    这是字节很久之前的笔试题,想不到现在仍然在问,

#include <bits/stdc++.h>using namespace std;bool cinT = false; // 多组数据typedef long long LL;const int N = 1e5 + 10;int n, m, ans;
vector<int> nums;
string s;void dfs(int u, int p, bool eq) {if(u == s.size()) {if(p < n) ans = max(ans, p);return ;}for(int i = 0; i < m; i ++) {if(eq && nums[i] > s[u] - '0') continue;if(eq && nums[i] == s[u] - '0' && u == s.size() - 1) continue;dfs(u + 1, p * 10 + nums[i], eq && nums[i] == s[u] - '0');}
}void solve() {cin >> n; // 给定的数字ncin >> m; // 给定数字集大小for(int i = 0; i < m; i ++) {int x;cin >> x;nums.push_back(x);}s = to_string(n);// 答案的位数比 n 小一位int mxV = 0;for(int i = 0; i < m; i ++) mxV = max(mxV, nums[i]);ans = stoi(string(m - 1, '0' + mxV));// 爆搜的结果的位数固定为 n 的位数dfs(0, 0, true);cout << ans << "\n";
}int main() {cin.tie(0); cout.tie(0);std::ios::sync_with_stdio(false);int T = 1;if(cinT) cin >> T;while(T --) {solve();}return 0;
}

http://www.mrgr.cn/p/74105840

相关文章

API教程:轻松上手HTTP代理服务!

作为HTTP代理产品供应商&#xff0c;我们为您带来一份详细的教程&#xff0c;帮助您轻松上手使用API&#xff0c;并充分利用HTTP代理服务。无论您是开发人员、网络管理员还是普通用户&#xff0c;本教程将为您提供操作指南和代码模板&#xff0c;确保您能够顺利使用API并享受HT…

JS逆向之猿人学爬虫第20题-wasm

文章目录 题目地址sign参数分析python算法还原往期逆向文章推荐题目地址 https://match.yuanrenxue.cn/match/20第20题被置顶到了第1页,题目难度 写的是中等 算法很简单,就一个标准的md5算法,主要是盐值不确定, 而盐值就在wasm里面,可以说难点就在于wasm分析 sign参数分…

高通死机分析-工具

为了方便高通稳定性领域分析9008以及死机问题&#xff0c;特此写此工具&#xff0c;方便大家分析死机问题&#xff0c;此工具还待完善&#xff0c;后续将发布&#xff0c;有兴趣请联系2251858097qq.com

7、单元测试--测试RestFul 接口

单元测试–测试RestFul 接口 – 测试用例类使用SpringBootTest(webEnvironment WebEnvironment.RANDOM_PORT)修饰。 – 测试用例类会接收容器依赖注入TestRestTemplate这个实例变量。 – 测试方法可通过TestRestTemplate来调用RESTful接口的方法。 测试用例应该定义在和被测…

M 芯片的 macos 系统安装虚拟机 centos7 网络配置

centos 安装之前把网络配置配好或者是把网线插好 第一步找到这个 第二步打开网络适配器 选择图中所指位置 设置好之后 开机启动 centos 第三步 开机以后 编写网卡文件保存 重启网卡就可以了&#xff0c;如果重启网卡不管用&#xff0c;则重启虚拟机即可 “ ifcfg-ens160 ” 这…

美容店预约小程序制作教程详解

现在&#xff0c;制作一个专属于美容店的预约小程序不再需要编程经验&#xff0c;通过乔拓云网提供的后台管理系统&#xff0c;你可以轻松地完成整个制作过程。下面&#xff0c;我将为你详细介绍如何DIY一个美容店预约小程序。 首先&#xff0c;登录乔拓云网的后台管理系统&…

NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问

文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 摘要 Nextcloud,它是ownCloud的一个分支,是一个文…

c++11 标准模板(STL)(std::basic_ifstream)(一)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_ifstream : public std::basic_istream<CharT, Traits> 类模板 basic_ifstream 实现文件流上的高层输入操作。它将 std::basic_istream…

ALLEGRO之File

本文主要讨论ALLEGRO软件中的File菜单。 &#xff08;1&#xff09;New&#xff1a;新建&#xff0c;用于新建Board/Package symbol等&#xff1b; &#xff08;2&#xff09;Open&#xff1a;打开&#xff0c;用于打开brd、dra等文件&#xff1b; &#xff08;3&#xff09;S…

Spring详解(学习总结)

目录 一、Spring概述 &#xff08;一&#xff09;、Spring是什么&#xff1f; &#xff08;二&#xff09;、Spring框架发展历程 &#xff08;三&#xff09;、Spring框架的优势 &#xff08;四&#xff09;、Spring的体系结构 二、程序耦合与解耦合 &#xff08;一&…

菜单 vue3 h函数创建组件

目录 index/.vue <template><div class"menu_table"><divclass"table_row"v-for"(item, index) in menuList"click"item.disabled ! true && itemClick(item)"><!-- :style"{border-top:item.line…

Redis常用命令

1.String类型 MSET &#xff1a;批量添加多个String类型键值对 MGET&#xff1a;批量获取多个String类型键值对 127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 OK 127.0.0.1:6379> MGET k1 k2 k3 1) "v1" 2) "v2" 3) "v3" 127.0.0.1:6379> …

nginx mirror代码分析

实现方式 mirror逻辑的工作阶段&#xff1a; ngx在log phase之后&#xff08;在ngx_http_free_request处调用&#xff09;已完成向client端返回response&#xff0c;在log phase之后完成close connection&#xff08;短链接&#xff09;&#xff0c;在该阶段处理mirror逻辑不…

C语言中的函数(超详细)

C语言中的函数&#xff08;超详细&#xff09; 一、函数概述二、C语言中函数的分类1.库函数2.自定义函数三、函数的参数1.实际参数&#xff08;实参&#xff09;2.形式参数&#xff08;形参&#xff09;四、函数的调用1.传值调用2.传址调用五、函数的嵌套调用和链式访问1.嵌套调…

二叉树(C语言)

文章目录 1.树1.1概念1.2相关定义1.3 表示&#xff08;左孩子右兄弟&#xff09; 2.二叉树2.1概念2.2特殊的二叉树1. 满二叉树&#xff1a;2. 完全二叉树&#xff1a; 2.3二叉树的性质2.4练习 3.二叉树的存储结构1. 顺序存储2. 链式存储 4.完全二叉树的代码实现4.1堆的介绍1.堆…

Android应用开发(23)获取亮灭屏状态

Android应用开发学习笔记——目录索引 在android 应用程序获取亮灭屏状态的常用方法有&#xff1a; 使用PowerManager提供的API函数注册Broadcast监听 一、使用PowerManager提供的API函数 frameworks/base/core/java/android/os/PowerManager.java import android.os.Buil…

ChatGPT与Claude对比分析

一 简介 1、ChatGPT: 访问地址&#xff1a;https://chat.openai.com/ 由OpenAI研发,2022年11月发布。基于 transformer 结构的大规模语言模型,包含1750亿参数。训练数据集主要是网页文本,聚焦于流畅的对话交互。对话风格友好,回复通顺灵活,富有创造性。存在一定的安全性问题,可…

全国大学生数据统计与分析竞赛2021年【本科组】-B题:用户消费行为价值分析

目录 摘 要 1 任务背景与重述 1.1 任务背景 1.2 任务重述 2 任务分析 3 数据假设 4 任务求解 4.1 任务一&#xff1a;数据预处理 4.1.1 数据清洗 4.1.2 数据集成 4.1.3 数据变换 4.2 任务二&#xff1a;对用户城市分布情况与分布情况可视化分析 4.2.1 城市分布情况可视化分析 4…

Day47 算法记录|动态规划14子序列

子序列 1143. 最长公共子序列1035.不相交的线53. 最大子数组和 1143. 最长公共子序列 这道题和718. 最长重复子数组的区别&#xff1a;这道题的子序列可以不连续 这个视频讲解的很好 class Solution {public int longestCommonSubsequence(String text1, String text2) {char…

蓝海卓越计费管理系统任意文件读取下载

……人哪&#xff0c;活着是这么的苦&#xff01;一旦你从幸福的彼岸被抛到苦难的此岸&#xff0c;你真是处处走头无路&#xff1b;而现在你才知道&#xff0c;在天堂与地狱之间原来也只有一步之遥&#xff01; 漏洞描述 蓝海卓越计费管理系统存在任意文件读取漏洞&#xff0…