请选择 进入手机版 | 继续访问电脑版
 找回密码

上海老站长门户

点击联系客服
客服QQ: 客服微信:
查看: 40|回复: 35

字节秋季笔试4个编程问题(2021-09-12)

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-9-14 07:26:55 | 显示全部楼层 |阅读模式
通知:最新秋季笔试编程问题标题、事故及参考代码均已整理并放置在[TechGuide]中。买的公共号码回复[美团]或[百度]就能解决最实时的笔试问题!

通知:最新秋季笔试编程问题标题、事故及参考代码均已整理并放置在[TechGuide]中。买的公共号码回复[美团]或[百度]就能解决最实时的笔试问题!

通知:最新秋季笔试编程问题标题、事故及参考代码均已整理并放置在[TechGuide]中。买的公共号码回复[美团]或[百度]就能解决最实时的笔试问题!

通知:最新秋季笔试编程问题标题、事故及参考代码均已整理并放置在[TechGuide]中。买的公共号码回复[美团]或[百度]就能解决最实时的笔试问题!





[2021-09-04]美团秋季笔试5个编程问题(附题)

[2021-09-03]贝类秋季笔试四个编程问题(前三个AC)

[2021-09-01]阿里巴巴秋季笔试两个编程问题

[2021-09-01]华为秋季招生器3个编程问题(标题附件,最后2个问题AC)

[2021-08-29]美团秋季笔试四个编程问题

[2021-08-29]字节跳动秋季笔试四个编程问题

[2021-08-26]腾讯音乐秋季笔试编程三题

[2021-08-25]华为秋季招生机器三个编程问题

[2021-08-23]阿里巴巴秋季笔试两个编程问题

[2021-08-22]腾讯秋季笔试五个编程问题

[2021-08-22]美团秋季笔试5个编程问题(待更新)

[2021-08-21]网易追悼会4个编程问题(待更新)

[2021-08-14]荣耀秋季招募机器三个编程问题(更新)

[2021-08-18]华为秋季招生器三个编程问题(更新)

[2021-08-18]阿里秋笔试两个编程问题

[2021-08-15]美团秋季笔试5个编程问题(更新)

[2021-08-12]带领秋季进行笔试的三个编程问题

[2021-08-11]华为秋季招生器三个编程问题(更新)

[2021-08-09]阿里巴巴秋季笔试两个编程问题

[2021-08-08]很多秋季笔试四个编程问题

[2021-08-08]美团秋季笔试5个编程问题

[2021-08-08]好的未来秋季招生三个编程问题

[2021-08-07]网络理想号娱乐追悼集笔试三个编程问题

[2021-08-04]华为秋季招生两个编程问题

文章目录

第一:小M的多任务下载器标题说明参考代码
/li>
  • 第二道:寻找对称的二叉树特定节点(100%)
  • 题目描述
  • 参考代码:
      
  • 第三道:进攻防御(100%)
  • 题目描述
  • 参考代码
  • CPP版本
      

      
  • 第四道:数组游戏(100%)
  • 题目描述
  • 参考代码
  • CPP版本
      



    第一道:小M的多任务下载器
    题目描述
    小M的程序设计大作业是编写一个多任务下载器,在做到计算任务并发数的时候遇到了困难。

    在一次下载中,总共包含N个任务,每个任务会在第x秒开始、并持续y秒。小M想要知道,在一次下载中,同时最多会有多少个任务正在下载。

    输入描述
    第一行输入一个正整数N,代表总共有N个任务
    之后共N行,每行包含两个正整数x、y,x代表任务开始的时间,y代表任务的持续时间。

    2
    1 2
    2 3

    输出描述
    输出包含一个整数,代表最高的任务并发数

    2

    解释
    第一个任务在第一秒开始,持续两秒;第二个任务在第二秒开始,持续三秒。故在第二秒时有两个任务同时在进行,最大并发数为2。

    参考代码
    可以参考力扣会议室II

    bool cmp(pairint,int> const&a, pairint, int> const& b) {
    return a.first  b.first || a.first == b.first && a.second  b.second;
    }
    int main()
    {
    int n;
    cin >> n;
    vectorpairint, int>> f;
    f.reserve(2 * n);
    for (int i = 0; i  n; i++) {
      int x, y;
      scanf_s("%d%d", &x, &y);
      
      f.emplace_back(x, 1);
      f.emplace_back(x+y, -1);
    }
    sort(f.begin(), f.end(), cmp);
    int res = 0;
    int m = 0;
    for (auto const& i : f) {
      m += i.second;
      res = max(res, m);
    }
    cout  res  endl;
    }
    // 关注TechGuide! 大厂笔经面经闪电速递!

    第二道:寻找对称的二叉树特定节点(100%)
    题目描述
    给定一颗二叉树,二叉树每个节点都有一个唯一的整数值代表节点,在遍历时,我们使用节点的整数值作为标记;结构对称,是指二叉树从根节点往下看,左右翻转一下,能够重合(不考虑节点内容比较,仅仅是结构),我们就称这棵二又树树结构对称

    输入:二叉树的节点个数N(0

    输出:判断这棵二叉树是否结构对称,若对称请输出最大值节点在树中对称节点的整数值,不对称请直接输出最大值节点的整数值

    输入描述
    二叉树的前序和中序 遍历结果,以数组序列表示
    第一行为节点个数N(0

    3
    1 3 4
    3 1 4

    输出描述
    判断这棵二叉树是否结构对称,若对称请输出最大值节点在树中对称节点的整数值,不对称请直接输出最大值节点的整数值

    3

    解释
    这颗二叉树根是1,左右子节点分别是3和4,是结构对称的,4是最大值节点,其对称节点是3,所以最后输出为3

    参考代码:
    import java.util.*;
    public class zj_2021_02 {
        static HashMapInteger, Integer> inorder_idx;
        static int[] preorder;
        static int[] inorder;
        static int[] inorder_height;
        static int max_idx = 0;
        static int n;
        static boolean flag = true;
        public static void isMirror (int preorder_left, int preorder_right, int inorder_left, int inorder_right, int height) {
            if (preorder_left > preorder_right || inorder_left > inorder_right) {
                return;
            }
            int inorder_root = inorder_idx.get(preorder[preorder_left]);
            inorder_height[inorder_root] = height;
            int other_height = inorder_height[n - 1 - inorder_root];
            if (!flag || (other_height != 0 && other_height != height)) {
                flag = false;
                return;
            }
            int left_size = inorder_root - inorder_left;
            isMirror(preorder_left + 1, preorder_left + left_size, inorder_left, inorder_root - 1, height + 1);
            isMirror(preorder_left + left_size + 1, preorder_right, inorder_root + 1, inorder_right, height + 1);
        }
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            n = sc.nextInt();
            preorder = new int[n];
            inorder = new int[n];
            inorder_height = new int[n];
            for (int i = 0; i  n; i++) {
                preorder = sc.nextInt();
            }
            for (int i = 0; i  n; i++) {
                inorder = sc.nextInt();
                max_idx = inorder > inorder[max_idx] ? i : max_idx;
            }
            inorder_idx = new HashMapInteger, Integer>();
            for (int i = 0; i  inorder.length; i++) {
                inorder_idx.put(inorder, i);
            }
            isMirror(0, n - 1, 0, n - 1, 0);
            System.out.println(flag ? inorder[n - 1- max_idx] : inorder[max_idx]);
        }
    }
    // 关注TechGuide! 大厂笔经面经闪电速递!

    第三道:进攻防御(100%)
    题目描述
    一个数组ai表示防御值,一个数组bi表示进攻值,ai的乘积能被bi的乘积整除,输出yes,反之输出no。

    思路就是质因数分解, 一个数大于另一个数 那么这个数的质因数分解的幂大于等于另一个数质因数分解的幂

    参考代码
    CPP版本
    public boolean f3(int[] a, int[] b) {
            //题目给的不算大,可以用数组,数组放不下可以用 Map
            int[] s = new int[100000];
            for(int t : a) {
            for(int i= 2; i t; i++){
                    while(t % i == 0){
                            s++;
                            t/=i;
                    }
                    if(t > 1) s[t]++;
            }
    }
    for(int t : b) {
            for(int i= 2;i  t; i++) {
                    while(t % i ==0){
                            s--;
                            if(s  0 peturn false;
                            t/=i;
                    }
                    if(t>1){
                    s[t]--;
                    if(s[t] 0) return false;
            }
            return true;
    }
    // 关注TechGuide! 大厂笔经面经闪电速递!

    第四道:数组游戏(100%)
    题目描述
    双休在家的凯凯真的是太无聊了,他准备和他家的猫玩一个游戏。

    凯凯在小黑板上写下一串有正有负的数列,猫咪从左到右,每碰到一个数,可以选择选取或者不选取。在选取过程中,要保证所有选取的数的和始终为非负。在这个限制条件下求最多可以选取多少个数。小猫咪表示“我太难了”

    你能帮帮它么?

    输入描述
    会有多组询问
    首先输入一个数字t(1

    2
    6
    4 -4 1 -3 1 -3
    5
    1 2 3 4 5

    输出描述
    对于每一个提问,请依次输出正确的答案

    5
    5

    解释
    第一组数据:选取第1,3,4,5,6个数第二组数据:因为全部是正数,所以全取。

    参考代码
    CPP版本
    #include
    #include
    #include
    #include
    #include
    using namespace std;
    // 4 -4 1 -3 1 -3
    int f(vectorint>&nums) {
        int sum = 0;
        int ans = 0;
        queueint> que;
        for (int z : nums) {
            if (sum + z >= 0) {
                ans++;
                sum += z;
                if (z  0) que.push(z);
            }
            else {
                if (!que.empty() && z > que.front()){
                    sum -= que.front();
                    sum += z;
                    que.pop();
                    que.push(z);
                }
            }
        }
        return ans;
    }
    int main()
    {
        int t;
        cin >> t;
        vectorint> vec;
        vectorvectorint>> vvint;
        while (t--)
        {
            int n;
            cin >> n;
            while (n--)
            {
                int k;
                cin >> k;
                vec.push_back(k);
            }
            vvint.push_back(vec);
            vec.clear();
        }
        for (int i = 0; i  vvint.size(); i++) {
            cout  f(vvint)  endl;
        }
        return 0;
    }
    // 关注TechGuide! 大厂笔经面经闪电速递!


    关注TechGuide,大厂笔经面经闪电速递!

  • 回复

    使用道具 举报

    1

    主题

    638

    帖子

    199

    积分

    注册会员

    Rank: 2

    积分
    199
    发表于 2021-9-14 07:28:49 | 显示全部楼层
    好帖,来顶下
    回复

    使用道具 举报

    1

    主题

    634

    帖子

    221

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    221
    发表于 2021-9-14 08:10:24 | 显示全部楼层
    LZ说的很不错
    回复

    使用道具 举报

    1

    主题

    643

    帖子

    212

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    212
    发表于 2021-9-14 08:36:19 | 显示全部楼层
    小手一抖,积分到手!
    回复

    使用道具 举报

    2

    主题

    621

    帖子

    177

    积分

    注册会员

    Rank: 2

    积分
    177
    发表于 2021-9-14 09:08:00 | 显示全部楼层
    有竞争才有进步嘛
    回复

    使用道具 举报

    1

    主题

    647

    帖子

    190

    积分

    注册会员

    Rank: 2

    积分
    190
    发表于 2021-9-14 09:33:56 | 显示全部楼层
    我抢、我抢、我抢沙发~
    回复

    使用道具 举报

    1

    主题

    586

    帖子

    89

    积分

    注册会员

    Rank: 2

    积分
    89
    发表于 2021-9-14 10:22:22 | 显示全部楼层
    不错,支持下楼主
    回复

    使用道具 举报

    1

    主题

    602

    帖子

    163

    积分

    注册会员

    Rank: 2

    积分
    163
    发表于 2021-9-14 10:46:59 | 显示全部楼层
    路过,学习下
    回复

    使用道具 举报

    1

    主题

    653

    帖子

    178

    积分

    注册会员

    Rank: 2

    积分
    178
    发表于 2021-9-14 11:12:31 | 显示全部楼层
    我是来刷分的,嘿嘿
    回复

    使用道具 举报

    1

    主题

    636

    帖子

    180

    积分

    注册会员

    Rank: 2

    积分
    180
    发表于 2021-9-14 12:09:02 | 显示全部楼层
    学习了,谢谢分享、、、
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ| 无图版|手机版|小黑屋| 上海@IT精英团

    Copyright © 2001-2015 Comsenz Inc.   All Rights Reserved.

    Powered by Discuz! X3.4

    快速回复 返回顶部 返回列表