科大讯飞嵌入式软件开发正式批笔试

【嵌入式未来】

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

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

第一题:将企鹅击落水中最小的力

牛牛发明了一款破冰行动的游戏,假设在河面上,有n块紧密相连的冰块。标号1-n。将一只企鹅放到任意一个标号为K的冰块上,现在通过打破一些冰块来使得企鹅掉落河中,然而他无法打破企鹅所踩的冰块k。每个冰块都有不同的强度Ai ,所以需要一个等于Ai的力来打破冰。当冰块(两侧的冰块都没有与河两岸连接时,则冰块会掉落到河中。

冰块1和冰块4可以通过分别施加72的力来打破,此时企鹅所在的冰块2和冰块3一起掉落河中。所以企鹅将落下。所以,可以使企鹅掉落的最小力是2+7=9

 

输入描述

第一行给出n,表示冰块的数量。第二行中,按顺序给出代表打破第i块冰块所需的力的Ai。题目保证企鹅所在的地方用-1表示,没有企鹅位于冰块1或冰块n的情况。

3<=n<=2*10^5

1<=Ai<=10^9

输出描述

输出可以击落企鹅到水中的最小力。

示例1

输入

5

7 -1 6 2 5

输出

9

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

using namespace std;

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

    vector<int> a(n);

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

    for (int i = 0; i < n; ++i) {
        if (a[i] == -1) {
            int p1 = i - 1, p2 = i + 1;
            int min1 = INT_MAX, min2 = INT_MAX;

            while (p1 >= 0) {
                min1 = min(min1, a[p1--]);
            }
            while (p2 < n) {
                min2 = min(min2, a[p2++]);
            }

            cout << min1 + min2 <<

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

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

全部评论

相关推荐

不愿透露姓名的神秘牛友
10-05 10:13
已编辑
HHHHaos:让这些老登来现在秋招一下,简历都过不去
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
评论
1
15
分享
牛客网
牛客企业服务