字节跳动技术训练营—后端开发专场机试题解(代码片段)

沉迷单车的追风少年 沉迷单车的追风少年     2023-01-15     334

关键词:

 

目录

1、扑克牌重新洗牌

2、二叉树的路径总和

3、剧本杀


但是由于牛客的笔试环境不能截图,离开三次就算作弊,所以我只能靠回忆写一写题目。

1、扑克牌重新洗牌

大概意思是说有一副扑克牌,需要重新洗牌。

黑桃、红桃、方块、梅花。

分别代表不同的数组,例如黑桃是1、2、3、4……13;红桃是21、22、23……

但是洗牌的时候不能打乱原本牌组内部的顺序。也就是只是将黑桃、红桃、方块、梅花四组按顺序排好,但是内部的顺序不管。

这题很简单,暴力一下直接一个sort都能通过40%。

因为只有四组,我们写出四个循环依次判断就能顺利AC,而且算法复杂度还是O(N)。就是代码有点丑陋。

也就是说,第一次遍历,把黑桃的按顺序挑出来放好;第二次遍历把红桃挑出来放好;第三次遍历把方块挑出来放好;第四次遍历把梅花挑出来放好。

2、二叉树的目标总和

基本上是LeetCode的原题:

但是平台是有bug,比如:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]

这个样例输出的是

[[5,8,4,5],[5,4,11,2]]

也就是说顺序发生了改变,直接判为错误,非常坑爹。

AC代码:

/**
 * Definition for a binary tree node.
 * struct TreeNode 
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) 
 * ;
 */
class Solution 
private:
    vector<vector<int>> v;
public:
    vector<vector<int>> pathSum(TreeNode* root, int sum) 
        vector<int> a;
        pathSum(root,sum,a);
        return v;
    
    void pathSum(TreeNode* root,int sum,vector<int> a)
        if(root==NULL)
            return;
        a.push_back(root->val);
        //在倒数第二层进行判断,如果能满足目标条件
        if(sum==root->val&&!root->left&&!root->right)
            v.push_back(a);
            return;
        
        pathSum(root->left,sum-root->val,a);
        pathSum(root->right,sum-root->val,a);
    
;

3、剧本杀

没玩过剧本杀的朋友(比如我),心里一万匹。。。

背景啰嗦了一堆话,暂且不管。

核心任务就是将一个字符串打乱顺序,不能让同样的字符串连在一起。

例如:

input:aab

output:aba

input:abbc

output:abcb

这题我用了双指针,如果遇到相同的就排除另外一个指针去找不同,找到就相互交换。

int main() 

    while (cin >> s) 
        if (s.size() <= 2) 
            cout << s << endl;
        
        for (int i = 1; i < s.size(); i++) 
            if (s[i] == s[i - 1]) 
                int j = i;
                while (j < size() && s[j] == s[i]) 
                    j++;
                
                int temp = s[i];
                s[i] = s[j];
                s[j] = temp;
            
        
        cout << s << endl;
    
    return 0;

前面的题目都是核心代码格式,这一题突然变成了ACM格式。。。

没有AC,只能过一半,可能是剧本杀的题目没理解清楚,再见。

字节跳动青训营笔试题解(代码片段)

...码T2.社交圈题目思路代码四、简答题题目思路前言第五届字节跳动青训营-后端专场笔试题解,简单做了一下,选择题和简答题不知道是否正确,编程题是通过了的,有问题欢迎评论,我会及时改正的~一、单选... 查看详情

字节跳动青训营笔试题解(代码片段)

...码T2.社交圈题目思路代码四、简答题题目思路前言第五届字节跳动青训营-后端专场笔试题解,简单做了一下,选择题和简答题不知道是否正确,编程题是通过了的,有问题欢迎评论,我会及时改正的~一、单选... 查看详情

字节跳动笔试题:链表反转(代码片段)

...职大厂不可或缺的基本能力。最近就听群里的伙伴说面试字节跳动的时候要求现场写出以k个为一组反转链表,如果不做准备,之前没有一点了解,看到这种题目,很容易懵逼,那么肯定就必挂无疑了。算法的种类很多,数组、链... 查看详情

字节跳动_玩转客户端训练营(代码片段)

时间:2020年5月20日-2020年6月28日地点:线上事情的起因一、得知活动这个活动当时是华工帮忙推广,所以华工的同学推荐给我了,非常感谢那位同学。二、入营笔试入营笔试有三道题,只做出了两道题,没有把题目记录下来有点... 查看详情

字节跳动面试真题:现在的java开发主流技术(代码片段)

一、什么是ZooKeeperZooKeeper是一个分布式服务协调框架,提供了分布式数据一致性的解决方案,基于ZooKeeper的数据结构,Watcher,选举机制等特点,可以实现数据的发布/订阅,软负载均衡,命名服务,... 查看详情

golang开发面经字节跳动(三轮技术面)(代码片段)

文章目录写在前面笔试一面epoll、select、poll区别epoll的水平触发和边缘触发的区别TCP的流量控制为什么有了流量控制还要有拥塞控制?TCP不是可靠传输吗?为什么会丢包呢?那你介绍一下拥塞控制的算法?进程、线程的... 查看详情

字节跳动实习后端日常实习的三次面试+hr面面经

...来打算明年3月份春招投递,不过最近参加了字节跳动训练营,他们给了一个内推机会,就直接投了(被迫投递 查看详情

字节跳动面试题汇总--c++后端(含答案)(代码片段)

malloc和new的区别new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需... 查看详情

字节跳动2017客户端工程师实习生笔试题-第四题(代码片段)

时间限制:C/C++1秒,其他语言2秒空间限制:C/C++32M,其他语言64M 给定x,k,求满足x+y=x|y的第k小的正整数y。|是二进制的或(or)运算,例如3|5=7。比如当x=5,k=1时返回2,因为5+1=6不等于5|1=5,而5+2=7等于5|2=7。 每组测试用例仅... 查看详情

面试阿里,字节跳动90%会被问到的java异常面试题集,史上最全系列!(代码片段)

Java异常架构与异常关键字Java异常简介Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情况下... 查看详情

字节跳动大数据开发面试题-附答案(代码片段)

此面试题来自牛客网友分享的字节跳动应届一面,面试时长一小时。网友情况:985本硕。参考答案由本公众号提供。如有错误,欢迎指正!以下为面试过程中提问,岗位为大数据开发:自我介绍+项目介... 查看详情

双非一本字节跳动后端实习经历分享,第一周做了什么?体验如何?(代码片段)

...讲讲新人第一周工作入职培训:对于入职培训,字节做的特别好,当天会给你固定的流程让你去进行培训和材料的提交以及电脑的领取ÿ 查看详情

双非一本字节跳动后端实习经历分享,第一周做了什么?体验如何?(代码片段)

...讲讲新人第一周工作入职培训:对于入职培训,字节做的特别好,当天会给你固定的流程让你去进行培训和材料的提交以及电脑的领取ÿ 查看详情

字节跳动笔试题——算法岗

目录1.写一个函数,将单向链表反转  查看详情

四面字节跳动(高级开发岗):分布式+中间件+tcp+jvm+hashmap+threadlocal(代码片段)

字节跳动的面试官都挺好,面试的内容是我面试那么多家以来最全面的,问题也没有特别刁钻,都比较符合工作场景。项目很重要,项目是敲门砖也是面试的大头,如果我没有简历上的两个项目的话,估计简历都很难被捞起来,... 查看详情

字节跳动java后端开发一二面,心态爆炸

一面10.27 (58min)1.子网掩码存在的目的是什么,有什么作用? 2.哪些协议是基于UDP3.HTTP无状态,如何标注用户身份4.服务端通过哪个字段告诉客户端cookie的5.jwt原理6.HTTP如何保证安全传输7.HTTPS加密过程8.假如说我在你隔壁宿... 查看详情

字节跳动青训营笔试题解(代码片段)

...码T2.社交圈题目思路代码四、简答题题目思路前言第五届字节跳动青训营-后端专场笔试题解,简单做了一下,选择题和简答题不知道是否正确,编程题是通过了的,有问题欢迎评论,我会及时改正的~一、单选... 查看详情

我不想干外包了,连续两次跳槽,我有幸成为了字节跳动的一名java后端开发~

...c;那就只能拉高努力的占比。2021年7月,我有幸成为了字节跳动的一名Java后端开发,正如标题所说,我从外包辞职了,10000小时后,走进字节跳动拿下了of 查看详情