当前位置: 首页 > news >正文

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

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;
}

相关文章:

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

var code "7022f444-ded0-477c-9afe-26812ca8e7cb" 背景 笔者在刷B站的时候&#xff0c;看到了一个关于面试的实录&#xff0c;前半段是八股文&#xff0c;后半段是笔试部分&#xff0c;感觉笔试部分的题目还是挺有意思的&#xff0c;特此记录一下。 笔试部分 问…...

[JavaScript游戏开发] 2D二维地图绘制、人物移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 文章目录 系列文章目录前言一、列计划1.1、目标1.2、步骤 二、使用步骤2.1、准备素材(图片)&#xff1a;草坪、人物(熊猫)、障碍(石头)2.2、初…...

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归时间序列区间预测模型&#xff1…...

.NET网络编程——TCP通信

一、网络编程的基本概念 : 1. 网络 就是将不同区域的电脑连接到一起&#xff0c;组成局域网、城域网或广域网。把分部在不同地理区域的计算机于专门的外部设备用通信线路 互联成一个规模大、功能强的网络系统&#xff0c;从而使众多的计算机可以方便地互相传递信息&#xff0c…...

【Python机器学习】实验01 Numpy以及可视化回顾

文章目录 一、Numpy的基础知识实验1 生成由随机数组成的三通道图片&#xff0c;分别显示每个维度图片&#xff0c;并将三个通道的像素四周进行填充&#xff0c;分别从上下左右各填充若干数据。 二、Numpy的线性代数运算实验2 请准备一张图片&#xff0c;按照上面的过程进行矩阵…...

vue3-组件中的变化

1. 路由 1. 安装指令&#xff1a;npm i vue-routernext 2. 创建路由&#xff1a;createRouter2. 异步组件&#xff08;defineAsyncComponent&#xff09; defineAsyncComponent 是用于定义异步组件的函数。defineAsyncComponent 接受一个工厂函数作为参数&#xff0c;这个工厂…...

认识主被动无人机遥感数据、预处理无人机遥感数据、定量估算农林植被关键性状、期刊论文插图精细制作与Appdesigner应用开发

目录 第一章、认识主被动无人机遥感数据 第二章、预处理无人机遥感数据 第三章、定量估算农林植被关键性状 第四章、期刊论文插图精细制作与Appdesigner应用开发 更多推荐 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的…...

数学建模的六个步骤

一、模型准备 了解问题的实际背景&#xff0c;明确其实际意义&#xff0c;掌握对象的各种信息&#xff0c;以数学思路来解释问题的精髓&#xff0c;数学思路贯彻问题的全过程&#xff0c;进而用数学语言来描述问题。要求符合数学理论&#xff0c;符合数学习惯&#xff0c;清晰…...

【计算机组成原理】24王道考研笔记——第二章 数据的表示和运算

第二章 数据的表示和运算 一、数值与编码 1.1 进制转换 任意进制->十进制&#xff1a; 二进制<->八进制、十六进制&#xff1a; 各种进制的常见书写方式&#xff1a; 十进制->任意进制&#xff1a;&#xff08;用拼凑法最快&#xff09; 真值&#xff1a;符合人…...

JQ-6 Bootstrap入门到实战;Bootstrap的(优缺点、安装、响应式容器原理、网格系统、响应式工具类、Bootstrap组件);小项目实践

目录 1_认识Bootstrap1.1_概念1.2_起源和历史1.3_Bootstrap优缺点 2_Bootstrap4的安装2.1_方式一 CDN2.2_方式二 : 下载源码引入2.3_方式三 : npm安装 3_Bootstrap初体验4_响应式容器原理4.1_屏幕尺寸的分割点&#xff08;Breakpoints&#xff09;4.2_响应式容器Containers 5_网…...

如何用3D格式转换工具HOOPS Exchange读取颜色和材料信息?

作为应用程序开发人员&#xff0c;非常希望导入部件的图形表示与它们在创作软件中的外观尽可能接近。外观可以在每个B-Rep面的基础上指定&#xff0c;而且&#xff0c;通过装配层次结构的特定路径可以在视觉外观上赋予父/子覆盖。HOOPS ExchangeHOOPS Exchange可捕获有关来自各…...

[Ubuntu 22.04] 安装docker,并设置镜像加速

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; doneapt install -y curl vim wget gnupg dpkg apt-transport-https lsb-release ca-certificates# 添加Docker的GPG公钥和apt源 #curl -sSL https://download.d…...

如何使用GPT作为SQL查询引擎的自然语言

​生成的AI输出并不总是可靠的&#xff0c;但是下面我会讲述如何改进你的代码和查询的方法&#xff0c;以及防止发送敏感数据的方法。与大多数生成式AI一样&#xff0c;OpenAI的API的结果仍然不完美&#xff0c;这意味着我们不能完全信任它们。幸运的是&#xff0c;现在我们可以…...

Servlet3.0上传文件

页面&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>文件上传</title> </head> <body> <form action"fileup" enctype"multipart/form-data" method"…...

【ARM Cache 系列文章 6 番外篇 – MMU, MPU, SMMU, PMU 差异与关系】

文章目录 MMU 与 MPU 之间的关系MMU 与 SMMU 之间的关系MMU 与 PMU 之间的关系 上篇文章&#xff1a;ARM Cache 系列文章 5 – 内存屏障ISB/DSB/DMB MMU 与 MPU 之间的关系 MMU&#xff08;Memory Management Unit&#xff09;和MPU&#xff08;Memory Protection Unit&#…...

NetSuite ERP顾问的进阶之路

目录 1.修养篇 1.1“道”是什么&#xff1f;“器”是什么&#xff1f; 1.2 读书这件事儿 1.3 十年计划的力量 1.3.1 一日三省 1.3.2 顾问损益表 1.3.3 阶段课题 2.行为篇 2.1协作 2.2交流 2.3文档管理 2.4时间管理 3.成长篇 3.1概念能力 3.1.1顾问的知识结构 …...

js 新浏览器打开页面

博主gzh&#xff1a;“程序员野区”&#xff0c;回复“加群”,可进博主web前端微信群 效果如下 setTimeout(()>{var url "https://blog.csdn.net/xuelang532777032?typeblog"; //要打开的网页地址var features "height500, width800, top100, left100, …...

jmeter软件测试实验(附源码以及配置)

jmeter介绍 JMeter是一个开源的性能测试工具&#xff0c;由Apache软件基金会开发和维护。它主要用于对Web应用程序、Web服务、数据库和其他类型的服务进行性能测试。JMeter最初是为测试Web应用程序而设计的&#xff0c;但现在已经扩展到支持更广泛的应用场景。 JMeter 可对服务…...

ZooKeeper原理剖析

1.ZooKeeper简介 ZooKeeper是一个分布式、高可用性的协调服务。在大数据产品中主要提供两个功能&#xff1a; 帮助系统避免单点故障&#xff0c;建立可靠的应用程序。提供分布式协作服务和维护配置信息。 2.ZooKeeper结构 ZooKeeper集群中的节点分为三种角色&#xff1a;Le…...

【算组合数】CF1833 F

少见地秒了这道1700&#xff0c;要是以后都这样就好了.... Problem - F - Codeforces 题意&#xff1a; 给定一个数列&#xff0c;让你在这个数列里找一个大小为M的子集&#xff0c;使得极差不超过M 思路&#xff1a; 子集&#xff0c;不是子序列&#xff0c;说明和顺序无…...

【Spark实战指南】RDD核心操作与数据分析实战(附完整代码)

1. RDD基础与实战环境搭建 RDD&#xff08;Resilient Distributed Dataset&#xff09;是Spark最核心的数据抽象&#xff0c;你可以把它理解成一个分布式的数据集合&#xff0c;但比普通集合更强大。想象你有一本超大的电话簿被撕成很多页&#xff0c;分给不同的人保管——RDD就…...

深入OpenBMC散热控制:从IPMI命令到D-Bus,揭秘手动与自动模式切换

深入OpenBMC散热控制&#xff1a;从IPMI命令到D-Bus&#xff0c;揭秘手动与自动模式切换 在数据中心和服务器运维领域&#xff0c;散热控制一直是系统稳定性的关键因素。OpenBMC作为开源基板管理控制器&#xff0c;其散热管理机制直接影响到服务器的可靠性和能效比。本文将带您…...

泰克TBS2000示波器保存功能全攻略:从U盘插入到图片导出(附最佳格式选择)

泰克TBS2000示波器高效保存指南&#xff1a;从硬件操作到专业文档整合 在电子工程实验室的日常工作中&#xff0c;波形数据的保存与共享是每个工程师都会遇到的高频需求。传统用手机拍摄屏幕的方式不仅画质堪忧&#xff0c;还常常因为反光、角度偏差导致关键参数无法辨识。泰克…...

告别依赖地狱:用Buildroot一键搞定OpenCV 4.x在ARM板上的交叉编译环境

告别依赖地狱&#xff1a;用Buildroot一键搞定OpenCV 4.x在ARM板上的交叉编译环境 在嵌入式视觉应用开发中&#xff0c;OpenCV几乎是不可或缺的计算机视觉库。但当开发者尝试将OpenCV部署到ARM架构的嵌入式设备时&#xff0c;往往会陷入依赖库编译的泥潭——FFmpeg、libjpeg、l…...

对抗训练新玩法:用AdverIN攻击自己反而提升医学分割模型20%泛化性

医学影像分割的对抗训练革命&#xff1a;AdverIN如何让模型在新设备上表现更优 医学影像分析领域正面临一个尴尬的现实&#xff1a;实验室里表现优异的深度学习模型&#xff0c;在真实临床环境中常常"水土不服"。不同医院使用的扫描设备、成像协议差异导致的域偏移&a…...

高效安全备份QQ空间历史说说:GetQzonehistory智能工具全指南

高效安全备份QQ空间历史说说&#xff1a;GetQzonehistory智能工具全指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 在数字记忆日益珍贵的今天&#xff0c;QQ空间作为承载无数青春回…...

LabelMe高级应用:如何利用AI辅助标注提升效率300%

LabelMe高级应用&#xff1a;如何利用AI辅助标注提升效率300% LabelMe是一款强大的图像标注工具&#xff0c;支持多边形、矩形、圆形、线条、点和图像级标记等多种标注方式。对于AI训练数据准备工作而言&#xff0c;高效的标注工具能显著提升工作流效率。本文将详细介绍如何利…...

AI智能体实战:从入门到企业级自动化应用

摘要 本文基于我过去一年多在企业级AI智能体落地的实战经验&#xff0c;从核心架构设计、从零到一的落地实战、生产环境踩坑避坑&#xff0c;到企业级进阶优化&#xff0c;完整拆解AI智能体从玩具Demo到生产级自动化应用的全流程。本文不搞空泛的理论堆砌&#xff0c;所有内容均…...

Git 代码库中找回丢失文件的实用指南

1. 为什么Git能帮你找回丢失的代码&#xff1f; 作为开发者&#xff0c;你一定遇到过这样的场景&#xff1a;不小心执行了rm -rf删错了文件&#xff0c;或者手滑把整个功能模块给覆盖了。这时候千万别慌&#xff0c;Git就像个贴心的时光机&#xff0c;能帮你找回99%的丢失文件。…...

ROS2接口实战:从传感器数据到自定义消息的完整开发流程(附Python示例)

ROS2接口实战&#xff1a;从传感器数据到自定义消息的完整开发流程&#xff08;附Python示例&#xff09; 在机器人开发领域&#xff0c;数据的高效传递与标准化处理是系统稳定运行的关键。ROS2作为新一代机器人操作系统&#xff0c;其接口系统提供了强大的数据交换能力&#x…...