华为嵌入式软件开发工程师笔试4-19

公号:嵌入式未来

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

《嵌入式软件笔试-2023年真题汇总》https://blog.nowcoder.net/zhuanlan/0oDWVm

1、服务器能耗统计

服务器有三种运行状态:空载、单任务、多任务,每个时间片的能耗的分别为134;

每个任务由起始时间片和结束时间片定义运行时间;

如果一个时间片只有一个任务需要执行,则服务器处于单任务状志;

如果一个时间片有多个任务需要执行,则服务器处于多任务状态;

给定一个任务列表,请计算出从第一个任务开始,到所有任务结束,服务器的总能耗。

输入

第一行的数字表示一共有多少个任务

后续每行包含由空格分割的两个整数,用于确定每一个任务的起始时间片和结束时间片;

任务执行时间包含起始和结束时间片,即任务执行时间是左团右闭的;

结束时间片一定大于等于起始时间片;

输出

一个整数,代表服务器的总能耗

样例1

输入:

2

2 5

8 9

输出:

20

解释:

[0,1]没有任务需要执行,能耗为0

[2,5]处于单任务状态,能耗为3*4=12

[6,7]处于空载状态,能耗为1*2=2

[8,9]处于单任务状态,能耗为3*2=6

共计能耗为12+2+6=20

样例2

输入:

3

4 8

1 6

2 9

输出:

34

解释:

[0,1]没有任务需要执行,能耗为0

[1,1]处于单任务状态,能耗为3*1=3

[2,8]处于多任务状态,能耗为4*7=28

[9,9]处于单任务状态,能耗为3*1=3

共计能耗为3+28+3=34

 

#include <iostream>
#include <vector>

using namespace std;

void func() {
    int num;
    cin >> num;

    vector<int> diff(1000001, 0);
    int n = 0;
    int start = 1000002;

    for (int i = 0; i < num; i++) {
        int l, r;
        cin >> l >> r;

        n = max(n, r);
        start = min(start, l);
        diff[l] += 1;
        diff[r + 1] -= 1;
    }

    vector<int> res(n + 1, 0);
    res[0] = diff[0];

    for (int i = 1; i < n + 1; i++) {
        res[i] += res[i - 1] + diff[i];
    }

    int ans = 0;

    for (int i = start; i < n + 1; i++) {
        int r = res[i];
        if (r == 0) {
            ans += 1;
        }
        else if (r == 1) {
            ans += 3;
        }
        else {
            ans += 4;
        }
    }

    cout << ans << endl;
}

int main() {
    func();
    return 0;
}

题目2

给定一棵树,这个树有n个节点,节点编号从0开始依次递增,0固定为根节点。在这棵树上有一个小猴子,初始时该猴子位于根节点(0)

小报子—次可以沿着树上的边从一个节点挪到另一个节点,但这棵树上有—些节点设置有际碍物,如果某个节点上设置了障,,(),()NULL.

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

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

全部评论
m
点赞 回复 分享
发布于 2023-08-12 15:19 山东
m
点赞 回复 分享
发布于 2023-05-11 18:39 广东
m
点赞 回复 分享
发布于 2023-05-11 12:04 广东
m
点赞 回复 分享
发布于 2023-05-10 15:25 广东
mark
点赞 回复 分享
发布于 2023-05-10 11:38 广东
软件笔试是考什么内容?
点赞 回复 分享
发布于 2023-04-27 10:57 河北
有没有二次笔试的机会?
点赞 回复 分享
发布于 2023-04-27 10:27 四川

相关推荐

02-07 12:06
已编辑
华侨大学 测试开发
最近看到很多&nbsp;92&nbsp;的,甚至是硕士,开始往测开赛道卷,说实话有点看不懂。先把话说清楚,大厂里的测开,绝大多数时间干的还是测试的活,只是写点自动化脚本、维护测试平台、接接流水线,真正像开发一样做系统、做架构、做核心平台的测开少得可怜,基本都集中在核心提效组,而且人很少,外面进去的大概率轮不到你,我想真正干过人都清楚。很多人被洗脑了,以为测开也是开,和后端差不多,只是更简单、更轻松、还高薪。现实情况是,测开和开发的职业路径完全不一样。开发的核心是业务和系统能力,测开的核心是稳定性和覆盖率,前者是往上走,后者天花板非常明显。你可以见到很多开发转测开,但你很少见到干了几年测开还能顺利转回开发的。更现实一点说,92&nbsp;的高学历如果拿来做测开,大部分时间就是在做重复性很强的杂活,这种工作对个人能力的放大效应非常弱。三年下来,你和一个双非的,甚至本科的测开差距不会太大,但你和同龄的后端、平台开发差距会非常明显。这不是努不努力的问题,是赛道问题。所谓测开简单高薪,本质上是把极少数核心测开的上限,当成了整个岗位的常态来宣传。那些工资高、技术强的测开,本身就是开发水平,只是挂了个测开的名。普通人进去,99%&nbsp;做的都是项目兜底型工作,而不是你想象中的平台开发。测开不是不能做,但它绝对不是开发的平替,也不是性价比最优解。如果你是真的不想做开发,追求稳定,那测开没问题。但如果你只是觉得测开比后端容易,还能进大厂,那我劝你冷静一点,这只是在用短期安全感换长期天花板。有92的学历,如果你连测开这些重复性工作都能心甘情愿接受,那你把时间精力用在真正的开发、系统、业务深度上,回报大概率比卷测开要高得多。想清楚再下场,别被岗位名和话术带偏了,就算去个前端客户端也是随便占坑的,测开是一个坑位很少赛道,反而大面积学历下放,不用想也能知道会是什么结果,我想各位在JAVA那里已经看到了
小浪_Coding:工作只是谋生的手段 而不是相互比较和歧视
点赞 评论 收藏
分享
评论
7
13
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务