秋招日记(二十) 大疆 C++ 笔试

笔试题型

  • 单选题*5
  • 多选题*5
  • 填空题*3
  • 简答题*3
  • 编程题*1

编程题

  • 题目:给定一个图像矩阵,以及一个点的坐标和一个阈值,求与点相连的颜色值小于阈值的点的数量
  • 难度:简单BFS
  • 完成度:90%,有可能是输入输出的问题,题目提示了图像数据是用uint8_t保存的,我用的int

其他题目范围

  • 数据结构与算法
  • C++基础语法
丑陋代码
#include <iostream>
#include <vector>
#include <queue>

using namespace std;
vector<vector<int>> img = {{37,37,39,41,13,205},
                           {37,41,41,203,39,243},
                           {37,41,40,131,40,41},
                           {91,41,39,198,41,9},
                           {189,41,39,40,40,38},
                           {37,124,38,167,41,41}};
int calu(int a, int b) {
    if (a > b) {
        return a - b;
    }
    else {
        return b - a;
    }
}
int main() {
    int n = 6, m = 6, x = 2, y = 3, t = 3;
    if (t == 0) {
        cout << 1 << endl;
        return 0;
    }
    if (t == 255) {
        cout << n * m << endl;
        return 0;
    }
    vector<vector<int>> isVisit(n, vector<int>(m, 0));
    int array[4][2] = { {1,0},{-1,0},{0,1},{0,-1} };
    int em = img[y][x];
    queue<pair<int, int>> q;
    q.push({ y,x });
    isVisit[y][x] = 1;
    int res = 0;
    while (!q.empty()) {
        pair<int, int> temp = q.front();
        q.pop();
        res++;
        for (int i = 0; i < 4; i++) {
            pair<int, int> point{ temp.first + array[i][0], temp.second + array[i][1] };
            if (point.first < 0 || point.first >= n || point.second < 0 || point.second >= m || isVisit[point.first][point.second]) {
                continue;
            }
            if (calu(img[point.first][point.second], em) < t) {
                q.push(point);
                isVisit[point.first][point.second] = 1;
                std::cout << point.first << point.second << endl;
            }
        }
    }
    std::cout << res << endl;
}


#我的秋招日记##大疆校招##大疆笔试##大疆2023校招笔试心得体会#
全部评论
同bfs,过了91;看了运行时间、内存,都很小,我也觉得输入有问题😂
3 回复 分享
发布于 2022-08-07 21:04
改输入的类型会报错。只做到91😅
2 回复 分享
发布于 2022-08-08 00:12
能看一下你的代码吗
1 回复 分享
发布于 2022-08-07 20:45
大佬,可以写一下编程题的代码吗,我想知道自己哪里写错了😱一直调不出来
1 回复 分享
发布于 2022-08-07 20:46
我也是90,原来是这个问题吗我敲
1 回复 分享
发布于 2022-08-07 20:48
XY没注意,写反了,GG
1 回复 分享
发布于 2022-08-07 20:52
dfs可以做吗,我用dfs就过了27
1 回复 分享
发布于 2022-08-07 21:00
我感觉是数据有问题
1 回复 分享
发布于 2022-08-07 21:08
能实时提交查看?
1 回复 分享
发布于 2022-08-07 21:26
大佬,能问下考Linux、计算机原理、网络通信这些知识嘛
1 回复 分享
发布于 2022-08-09 20:41
uint8输入不进来,我试过了,他输入有问题
点赞 回复 分享
发布于 2022-08-07 20:44
大疆还能看通过多少吗?我以为要自己写测试用例测试?
点赞 回复 分享
发布于 2022-08-07 21:19
好兄弟有题目能看看吗
点赞 回复 分享
发布于 2022-08-07 21:28
有没有好兄弟记得题目里的案例的输出结果是6还是7啊
点赞 回复 分享
发布于 2022-08-07 21:38
同91
点赞 回复 分享
发布于 2022-08-08 10:56
这道题的题意感觉有问题啊😂; 题中说,数组有N行,M列,坐标X为横坐标,Y为纵 坐标(题中也说了,横轴向右,纵轴向下) 但是后面又说X的 范围为 1 <=X
点赞 回复 分享
发布于 2022-08-09 00:16
麻了,代码差不多,只过了45
点赞 回复 分享
发布于 2022-08-09 19:08
#华为2012实验室-中央硬件工程院#  #校招#  欢迎优秀学弟学妹们来撩,参与超大型嵌入式平台项目,与大牛为伍~ 职位设计软件、硬件、算法岗,******! 等待你的加入,冲~ 职位1:软件开发工程师 职位2:算法/AI工程师 职位3:测试工程师 职位4:智能制造/自动化工程师 职位5:嵌入式开发工程师 。。。 菊厂伯乐欢迎你 🤔
点赞 回复 分享
发布于 2022-08-10 14:35

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
12 49 评论
分享
牛客网
牛客企业服务