美团嵌入式软件开发笔试

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

题型:4道编程题+1道选择题题

美团商家的订单发起时,订单编号最开始从1开始,后续每发起一个订单,订单编号便在上一订单编号的基础上+1。为了防止订单号过大,商家还可以设置一个编号上限m,当订单编号超过m,将又从1开始始编号。

小美想知道,当订单编号上限为m时,第x个订单编号是多少?将有q次询问。

输入描述

第一行输入一个整数q(1q50000)

接下来q,每行两个整数m, x(11m, x110^9).

输出描述

q,每行一个整数表示答案。

示例1

输入

4

2 3

5 17

8 2

4 4

输出

1

2

2

4

#include <iostream>
using namespace std;

int main() {
    int q;
    cin >> q;
    for (int i = 0; i < q; ++i) {
        long long m, x;
        cin >> m >> x;
        cout << (x % m == 0 ? m : x % m) << endl;
    }
    return 0;
}

小美有一个长度为n的数组,她想将这个数组进行求和,sum=a1a2+...+an .

小美可以使用一次魔法(也可以不使用),将其中一个加号变成乘号,使得sum最大。

求出最大的sum

输入描述

第一行输入一个整数n

第二行输入n个整数表示数组a

1n10^5

11ai110^9

输出描述

输出一个整数表示答案。

示例1

输入

6

1 1 4 5 1 4

输出

27

说明

小美可以将45之间的加号改成乘号。

1+1+4*5+1+4=27

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

using namespace std;

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

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

    long long sum = 0;
    long long maxProduct = 0;

    for (int i = 0; i < n; ++i) {
        sum += arr[i];
        if (i < n - 1) {
            maxProduct = max(maxProduct, arr[i] * arr[i + 1]);
        }
    }

    if (maxProduct > 1) {
        long long subtract = 0;
        for (int i = 0; i < n - 1; ++i) {
            if (arr[i] * arr[i + 1] == maxProduct) {
                subtract = arr[i] + arr[i + 1];
                break;
            }
        }
        sum = sum - subtract + maxProduct;
    }

    cout << sum << endl;
    return 0;
}

小美定义一个01串的权值为:每次操作选择一位取反,使得相邻字符都不

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

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

全部评论
第二道用maxProduct > 1去判断是不是有问题,比如1,1,2这个序列,maxProduct > 1,但是用了乘法就不如加法sum大了
点赞 回复 分享
发布于 05-26 14:22 浙江

相关推荐

不愿透露姓名的神秘牛友
09-06 11:25
点赞 评论 收藏
分享
📍面试公司:科大讯飞🕐面试时间:2025年09月09日💻面试岗位:嵌入式C++软件开发❓面试问题:1.内存对齐有哪几种方式?请解释其原理和优缺点。2.栈溢出会导致什么后果?如何避免?3.在资源受限的嵌入式系统(如RAM极小)中,有哪些优化内存使用的策略?4.static关键字在C语言中有哪些作用?请分点说明。5.函数和宏定义的区别是什么?各自适用于什么场景?6.请解释环形缓冲区(Ring&nbsp;Buffer)的原理及其应用场景。7.CPU从I/O接口读取数据的路径是怎样的?请描述这一过程。8.看门狗(Watchdog)的工作原理是什么?它在嵌入式系统中的作用是什么?9.C++中map和unordered_map的区别是什么?(可从底层实现、时间复杂度、内存占用等方面回答)10.哈希表的扩容机制是如何工作的?负载因子(Load&nbsp;Factor)的意义是什么?11.请谈谈你在项目中最具挑战性的一个任务,你是如何分析和解决其中的难题的?12.你如何理解科大讯飞的技术方向(如人工智能、语音识别)?你认为你的技能如何与公司业务结合?13.作为校招生,你更看重公司的哪些方面?(如技术成长、团队氛围、项目机会等)🙌面试感想:科大讯飞的面试官非常注重基础知识的深度和理解,尤其是C/C++、内存管理、数据结构和嵌入式系统相关概念。此外,项目经验中的实际问题解决能力也是考察重点。建议在校招面试前充分复习底层知识(如内存对齐、栈机制、硬件交互等),并对简历中的项目细节做好深入准备的准备。同时,了解公司的主要技术方向(如AI、语音处理)并能结合自身技能表达兴趣和匹配度,会是一个明显的加分项
查看13道真题和解析
点赞 评论 收藏
分享
评论
点赞
16
分享

创作者周榜

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