灵犀互娱笔试 灵犀互娱笔试题 0824

笔试时间:2024年08月24日 秋招 阿里灵犀互娱

历史笔试传送门:2023秋招笔试合集

第一题

题目:减一

给出一组数,求出最长的子串。使得这个子串中的数最大值和最小值的差值最大为1。 如1 5 4 1 2 4 2 5 5。最长子串为5 4 4 5 5,长度为5。

输入描述

第一行为一整数n(1<=n<=100),表示整数的个数。 

下一行为n个整数,以空格分割,每个整数的值小于10^9。

输出描述

输出一个整数,为最长子串长度。

样例输入

6

4 6 5 3 3 1

样例输出

3

参考题解

模拟。

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int max_length_subarray(vector<int>& arr) {
    if (arr.empty()) {
        return 0;
    }

    sort(arr.begin(), arr.end());
    int start = 0;
    int max_length = 1;

    for (int end = 1; end < arr.size(); ++end) {
        if (arr[end] - arr[start] > 1) {
            ++start;
        }
        max_length = max(max_length, end - start + 1);
    }

    return max_length;
}

int main() {
    int n;
    cin >> n;

    vector<int> nums(n);
    for (int i = 0; i < n; ++i) {
        cin >> nums[i];
    }

    cout << max_length_subarray(nums) << endl;

    return 0;
}

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.*;

public class Main {
    public static int maxLengthSubarray(List<Integer> arr) {
        if (arr.isEmpty()) {
            return 0;
        }

        Collections.sort(arr);
        int start = 0;
        int maxLength = 1;

        for (int end = 1; end < arr.size(); ++end) {
            if (arr.get(end) - arr.get(start) > 1) {
                ++start;
            }
            maxLength = Math.max(maxLength, end - start + 1);
        }

        return maxLength;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        List<Integer> nums = new ArrayList<>(n);

        for (int i = 0; i < n; ++i) {
            nums.add(scanner.nextInt());
        }

        System.out.println(maxLengthSubarray(nums));
        scanner.close();
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

n = int(input())
nums = list(map(int, input().split()))

def max_length_subarray(arr):
    if not arr:
        return 0
    
    arr.sort()  
    start = 0
    max_length = 1
    
    for end in range(1, len(arr)):
        if arr[end] - arr[start] > 1:
            start += 1
        max_length = max(max_length, end - start + 1)
    
    return max_length

print(max_length_subarray(nums))

第二题

题目:小杰的灵犀之旅

小杰在异世界探险时发现了一个有着奇妙法则的地方,灵犀帝国。这个法则让灵犀帝国的人不再为食物而烦恼。每逢每个月的最后一天,在灵犀帝国中的人会进入到其对应的奇妙领域,届时会有n轮食物大派送降临。奇妙领域存在着一条m个格子的路,在每轮的食物大派送中会在[l, r]的格子上放一颗灵果。此时小杰已经进入了奇妙领域,如果小杰将n轮食物大派送的所有灵果取走会拥有多少颗灵果呢?

输入描述

第一行包含一个正整数T (T < 10),T代表数据组数。 

接下来T组数据,每组数据第一行两个正整数n,m。

第二行开始有n行,每行两个正整数l,r (1 <= l <= m, l <= r <= m)

输出描述

对于每组输入输出小杰拥有灵果的个数,由于答案可能过大所以答案%998244353。

说明

补充说明对于30%的数据 1 <= n <= 1000, 1 <= m <= 1000 对于50%的数据 1<= n <= 10000, 1 <= m <= 10000 对于100%的数据 1 <= n <= 100000, 1 <= m <= 100000

样例输入

2

1 2

1 2

3 6

1 2

1 2

4 5

样例输出

2

6

参考题解

将题目所给的所有区间累加即可,注意取模。

C++:[此代码未进行大量数据的测试,仅供参考]

#include <iostream>

using namespace std;

int main() {
    int T;
    cin >> T;

    for (int i = 0; i < T; i++) {
        int n, m;
        cin >> n >> m;
        
        long long res = 0;
        for (int j = 0; j < n; j++) {
            int l, r;
            cin >> l >> r;
            res += r - l + 1;
            res %= 998244353;
        }
        
        cout << res << endl;
    }

    return 0;
}

Java:[此代码未进行大量数据的测试,仅供参考]

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int T = scanner.nextInt();

        for (int i = 0; i < T; i++) {
            int n = scanner.nextInt();
            int m = scanner.nextInt();
            
            long res = 0;
            for (int j = 0; j < n; j++) {
                int l = scanner.nextInt();
                int r = scanner.nextInt();
                res += r - l + 1;
                res %= 998244353;
            }
            
            System.out.println(res);
        }
        
        scanner.close();
    }
}

Python:[此代码未进行大量数据的测试,仅供参考]

MOD = 998244353

def main():
    T = int(input())
    
    for _ in range(T):
        n, m = map(int, input().split())
        res = 0
        
        for _ in range(n):
            l, r = map(int, input().split())
            res += r - l + 1
            res %= MOD
        
        print(res)

if __name__ ==

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024 BAT笔试合集 文章被收录于专栏

持续收录字节、腾讯、阿里、美团、美团、拼多多、华为等笔试题解,包含python、C++、Java多种语言版本,持续更新中。

全部评论

相关推荐

测试开发面经12.9一面自我介绍项目经历:围绕了项目经历进行提问,比如&nbsp;具体是做了哪一块,然后就介绍具体做了什么,优化了什么,有具体测试出优化了多少吗。然后根据简历上写的缓存一致性又深入聊了,然后就问我先更新数据库,再删除缓存,这一个是怎么做的,然后如果让我测试这个场景,会怎么设计测试用例。实习经历:然后就围绕实习经历进行提问,怎么找的这个实习,然后就介绍自己印象最深刻的一个项目,以及是怎么测试的,然后就是根据这个不断深挖,深问,问了功能测试是怎么测的,什么是埋点测试和接口测试,具体是怎么做的,怎么决定模拟并发的时候的并发数。游戏经历:根据游戏经历开始问,然后就问最近玩的游戏是什么,或者最想分享的一个游戏是什么,然后我就选择聊了英雄联盟,然后就开始聊了大概十分钟,比如:为什么是觉得想聊英雄联盟?你玩什么位置比较多?为什么喜欢玩打野?你对于打野这个位置的理解是什么?你最喜欢的一个英雄是什么?(我说了蜘蛛)然后就问&nbsp;你开局的思路是什么,你觉得玩蜘蛛是怎么赢游戏的,节奏是怎么样的如果你是设计师,你会如何设计来加强蜘蛛的打团能力。你觉得英雄联盟这游戏是怎么样的一个状态,未来会是怎么样的?你作为策划你会怎么做来让游戏更多人玩?其他问题:你的获奖经历,可以聊聊你蓝桥杯的获奖是怎么样准备的吗?其中遇到了什么困难?你后续有升学的打算吗?你有别的offer吗?反问:后续流程是怎么样的?游戏测试和软件测试有什么不同吗?体验很好,聊得很开心12.12二面:自我介绍然后围绕了实习经历进行非常细致的提问实习经历:介绍实习做了什么?具体什么业务排行榜这个是怎么测试的?封榜的逻辑是怎么设计的?发奖的逻辑是怎么样的,怎么设计测试用例,要考虑哪些?排行榜具体设计到的数据库表是怎么设计的?都有什么字段?之前那个公司的实习的薪资怎么样?转正的待遇如何?工作强度你觉得怎么样?设计测试用例的时候,leader帮你检查的时候主要是检查或者补充什么部分?有遗漏过什么吗?你觉得测试和测开有什么区别?注重的点是什么?你是怎么理解测试这个岗位,以及为什么想要来干测试?你对于自动化测试怎么理解?你会帮你前公司设计哪些提效的测试工具?如何实现?(聊了很久)如果版本大改,页面变动很大,那自动化的代码不能复用了,你如何处理?如何减小影响?游戏经历:喜欢玩什么游戏?(我答了英雄联盟)对于打野的理解怎么安排前期的野区路线和gank路线野核和节奏型打野这两种类型的打野,你觉得什么因素会影响他们的强弱。面试官问的特别细致,也会给出反应和回应,也会给出一些方向的提示,体验很好网易游戏(互娱)2026届实习生培养项目,2月25日震撼启航!️&nbsp;面向26届追梦人,你准备好了吗?如果你是2025年9月至2026年8月间毕业的闪耀新星,这将是你不容错过的舞台!📍招聘城市:广州、杭州、上海招聘岗位:涵盖5大类近40个岗位校招C位提前锁定、SSR级培训资源、一流的实习福利等你来~投递传送门:https://game.campus.163.com/m/home?st=YTE1ZTlhNDUtNmNlMC00ZTI5LWE2ZjUtZGMxNTNhNDhjNzlm内推码:【9QcfNR】内推码可帮助大家优先筛选或直通笔试!!(大家使用这个内推码投递,我才可以帮大家查询进度,跟进流程~)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
点赞 评论 收藏
分享
点赞 评论 收藏
分享
04-05 16:15
已编辑
深圳大学 C++
查看11道真题和解析 投递阿里巴巴灵犀互娱等公司7个岗位 笔试
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客企业服务