秋招日记(二十) 大疆 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

相关推荐

#我的实习求职记录#一面是电话面,我也没咋准备,结果问了一堆八股,我之前的面试都不问八股,这次全是八股,也挺离谱的。整理一下(其实是很常规的八股):1、C++相关:面向对象三大特性、虚函数表、三种继承的区别、引用和指针的区别以及大小、野指针、重写/重载/隐藏的区别、const的用法、static的用法、构造函数不能虚、析构函数建议虚、C++和C的内存区别(讲到我擅长的了,毕竟我自己剖析过ptmalloc)、内存对齐、类型转换、智能指针(shared_ptr是线程安全的吗?)、右值引用、完美转发、左值引用和指针的区别、STL容器的底层实现和复杂度、vector的扩容2、算法部分:冒泡排序的原理以及优缺点,快速排序的优缺点、稳定性3、mysql的查询优化、索引底层、B/B+的区别;redis常用数据结构,订阅与发布4、协程原理相关(有栈无栈区别、最终目的)5、TCP三次握手和四次挥手相关、TCP和UDP的区别、TCP可靠性、滑动窗口(大小怎么确定)、常用IO多路复用(太熟悉了,一通底层输出)、GET和POST的区别、TCP百万并发连接(自己实现过,这部分底层也很熟悉)6、Windows编程和linux编程的区别7、项目:还是比较看中基础组件,讲了连接池的实现总结一下:可能一面就问些基础的,上述内容我都比较熟悉,但讲出来有些还是感觉怪怪的,还是要自己整理,最好底层一点,背一下吧,最后反问问了主要的工作,说是写游戏逻辑或者改bug之类的
查看36道真题和解析 我的实习求职记录
点赞 评论 收藏
分享
评论
12
49
分享
牛客网
牛客企业服务