蚂蚁集团笔试 蚂蚁集团软件算法笔试

订阅专栏,方便查阅,时刻更新各厂软件算法笔试https://blog.nowcoder.net/zhuanlan/0oDWVm

题目1:

小红拿到了一个数组,她可以进行怡好一次操作:选择两个相邻元素将它们合井,合并后的新元素为原来的两个元素之和。

小红想知道,操作1次后数组的极差的最小值是多少?

数组的极差为:数组的最大值减最小值。

输入描述

第二行输入n个正整数ai,代表数组的元素。

2<=n<10^5,1<ai<10^9

输出描述

一个整数,代表操作后的极差最小值。

输入

3

1 4 5

输出

0

#include <iostream>
#include <vector>
#include <algorithm>
#include <limits.h>
using namespace std;

int n;
vector<int> a, pre_max, pre_min, suf_max, suf_min;

int get_max(int i) {
    int ret = a[i] + a[i+1];
    if (i+2 < n) {
        ret = max(ret, suf_max[i+2]);
    }
    if (i-1 >= 0) {
        ret = max(ret, pre_max[i-1]);
    }
    return ret;
}

int get_min(int i) {
    int ret = a[i] + a[i+1];
    if (i+2 < n) {
        ret = min(ret, suf_min[i+2]);
    }
    if (i-1 >= 0) {
        ret = min(ret, pre_min[i-1]);
    }
    return ret;
}

int main() {
    cin >> n;
    a.resize(n);
    pre_max.resize(n);
    pre_min.resize(n);
    suf_max.resize(n);
    suf_min.resize(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    pre_max[0] = pre_min[0] = a[0];
    for (int i = 1; i < n; i++) {
        pre_max[i] = max(pre_max[i-1], a[i]);
        pre_min[i] = min(pre_min[i-1], a[i]);
    }

    suf_max[n-1] = suf_min[n-1] = a[n-1];
    for (int i = n-2; i >= 0; i--) {
        suf_max[i] = max(suf_max[i+1], a[i]);
        suf_min[i] = min(suf_min[i+1], a[i]);
    }

    int ans = INT_MAX;
    for (int i = 0; i < n-1; i++) {
        int mx = get_max(i);
        int mi = get_min(i);
        ans = min(ans, mx-mi);
    }

    cout << ans << endl;
    return 0;
}

题目2:

小红非常喜欢‘R’字符,而不喜欢‘B’字符。因此她定义字符串的权值为字符‘R’的出现次数。例如

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

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

全部评论
m
点赞 回复 分享
发布于 2023-05-11 18:38 广东
m
点赞 回复 分享
发布于 2023-05-11 12:02 广东
m
点赞 回复 分享
发布于 2023-05-10 15:23 广东
mark
点赞 回复 分享
发布于 2023-05-10 11:37 广东
这是什么时候的考试?
点赞 回复 分享
发布于 2023-05-03 11:51 广东
这个是如何报名呢?
点赞 回复 分享
发布于 2023-05-02 22:09 广东

相关推荐

刚刷到字节跳动官方发的消息,确实被这波阵仗吓了一跳。在大家还在纠结今年行情是不是又“寒冬”的时候,字节直接甩出了史上规模最大的转正实习计划——ByteIntern。咱们直接看几个最硬的数,别被花里胡哨的宣传词绕晕了。首先是“量大”。全球招7000多人是什么概念?这几乎是把很多中型互联网公司的总人数都给招进来了。最关键的是,这次的资源分配非常精准:研发岗给了4800多个Offer,占比直接超过六成。说白了,字节今年还是要死磕技术,尤其是产品和AI领域,这对于咱们写代码的同学来说,绝对是今年最厚的一块肥肉。其次是大家最关心的“转正率”。官方直接白纸黑字写了:整体转正率超过50%。这意味着只要你进去了,不划水、正常干,每两个人里就有一个能直接拿校招Offer。对于2027届(2026年9月到2027年8月毕业)的同学来说,这不仅是实习,这简直就是通往大厂的快捷通道。不过,我也得泼盆冷水。坑位多,不代表门槛低。字节的实习面试出了名的爱考算法和工程实操,尤其是今年重点倾斜AI方向,如果你简历里有和AI相关的项目,优势还是有的。而且,转正率50%也意味着剩下那50%的人是陪跑的,进去之后的考核压力肯定不小。一句话总结:&nbsp;27届的兄弟们,别犹豫了。今年字节这是铁了心要抢提前批的人才,现在投递就是占坑。与其等到明年秋招去千军万马挤独木桥,不如现在进去先占个工位,把转正名额攥在手里。
喵_coding:别逗了 50%转正率 仔细想想 就是转正与不转正
字节7000实习来了,你...
点赞 评论 收藏
分享
评论
6
5
分享

创作者周榜

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