荣耀嵌入式软件开发工程师笔试4-22

公号:嵌入式未来

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

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

题目1:

给定一个正整数数组,最大为100个成员,从第一个成员开始,走到数组最后一个成员最少的步骤数,第一步必须从第一元素开始,1<=步长<len/2,第二步开始以所在成员的数字走相应的步数,如果目标不可达返回-1,只输出最少的步骤数量

输入描述

由正整数组成的数组,以空格分隔,数组长度小于100,请自行解析数据数量。

输出描述

正整数,表示最少的步数,如果不存在输出-1

输入

7 5 9 4 2 6 8 3 5 4 3 9

输出

2

#include <iostream>
#include <vector>
#include <sstream>
#include <limits>

using namespace std;

int min_steps(const vector<int>& nums) {
    int n = nums.size();
    vector<int> steps(n, numeric_limits<int>::max());
    steps[0] = 0;

    for (int i = 0; i < n - 1; ++i) {
        for (int j = i + 1; j <= i + nums[i] && j < n; ++j) {
            steps[j] = min(steps[j], steps[i] + 1);
        }
    }

    return steps[n - 1] == numeric_limits<int>::max() ? -1 : steps[n - 1];
}

int main() {
    string input;
    getline(cin, input);
    stringstream ss(input);
    int num;
    vector<int> nums;

    while (ss >> num) {
        nums.push_back(num);
    }
    
    int result = min_steps(nums);
    cout << result << endl;

    return 0;
}

题目2:

在nxn方阵里填入1,2,… ,nxn,要求填成蛇形。元素1从右上角开始,顺时针排列,例如,n=4时方阵为: 18 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 n <= 8。

输入描述

大于1不超过8的方阵的维数。

输出描述

打印填充后的方阵,每个元素占3个字符位宽。

示例1

输入

4

输出

10 11 12 1 

9  16 13 2 

8  15 14 3 

7 6  5  4 

#include <iostream>
#include <vector>

using namespace std;

int main() {
    int n;
    cin 

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

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

全部评论
荣耀的笔试难度怎么样?
点赞 回复 分享
发布于 2023-05-02 21:42 江苏
这是22号的笔试题目吗?
点赞 回复 分享
发布于 2023-05-02 22:12 安徽
mark
点赞 回复 分享
发布于 2023-05-10 11:37 广东
m
点赞 回复 分享
发布于 2023-05-11 12:03 广东
m
点赞 回复 分享
发布于 2023-05-11 18:38 广东

相关推荐

5 8 评论
分享
牛客网
牛客企业服务