华为软件类笔试-嵌入式软件开发 10-11

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

《软件开发笔试汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

第三题:稀疏存储

在虚拟化技术、芯片仿真器等领域,存在一种场景,即实际读写的数据量比较小,但要求可访问的地址空间却很大(要求4GB、甚至128GB地址空间)

实现一个地址范围为32G的,可在该地址范围内任意位置读写数据的虚拟化内存机制(数据默认清零)

对应功能: 1.读取任意地址数据: 2.往任意地址写入任意数据 3.清空数据,并释放内存

输入格式: Command Address Length Data

解释: 1CommandReadWrite Clear之一 2Address采用64位无符号十六进制数,全大写 3Length采用64位无符号十进制数,单位为字节”; 4Data采用字节流(216进制数表示一个Byte) ,全大写;5、如果指定的Length大于实际给定的Data,需要程序自行末尾补0,小于则末尾截断

解答要求:

时间限制: C/C++ 1000ms其他语言: 2000ms内存限制: /C++ 32MB.其他语言: 64MB

输入

每条指今一行,一个用例输入可以是多条指令混合,只有Read指令有输出。每个用例保证指令、参数格式正确,但不保证参数范围,需要程序按照题目规格要求自行校验,参数不合法,则对应的指令无效。

每个用例保证需要存储的总数据量最大不超过16MB,一个用例最多不超过500条指令。

例如(3表示有3条指令) 3 Write 0x100 7 001122AA Read 0x100 4 Clear

输出

采用字节流(216进制数表示一个Byte),全大写 例如 001122AA 每条Read指令对应一行输出数据,如果指令给的参数不合法,对应的输出为空(不换行)

第一题:计算最少流控请求数

服务器性能有限,对于突发请求,有时需要通过流控保护系统不受冲击。假设某服务器的系统要求任意M分钟内只能处理N条请求,超出的请求必须流控掉。已知连续X分钟,每分钟的实际请求数,请给出至少流控掉多少请求才能保证上述系统不受冲击。

解答要求

时间限制: C/C++ 1000ms,其他语言: 2000ms 内存限制: C/C++ 256MB,其他语言:512MB

输入

第一行: MN M范围[1,10] N的范围[0,10000]

第二行: 连续分钟数XX范围为[1,100000]

第三行:每分钟的请求数范围[0,1000]

输出

最少可以流控的请求数

样例1

输入:

4 6 6 2 1 2 2 3 2 输出:

3 解释:

输入: 第一行系统要求:4分钟只能接受6个请求。

第二行:连续6分钟 第三行:每分钟的实际请求数。 至少流控3个请求 ,可以是4分钟流控1个请求,第5分钟流控1个请求,第6分钟流控1个请求,才可以满足系统4分钟内只能处理6条请求的要求

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int M, N;
    cin >> M >> N;

    int X;
    cin >> X;

    vector<int> requests(X);
    for(int i = 0; i < X; i++) {
        cin >> requests[i];

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

本专栏主要发布嵌入式软件开发相关岗位的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论

相关推荐

点赞 17 评论
分享
牛客网
牛客企业服务