精华内容
下载资源
问答
  • 大疆笔试题目解析

    千次阅读 2021-04-25 00:14:55
    【阅读推荐】小米嵌入式软件工程师笔试题目解析在深圳做嵌入式,大疆公司绝对是Top级别的,大疆的技术栈也很深。但2020受美国制裁后,有所缩招。另外提醒,研发岗对学历要求高一些。大疆公司每年...

    【阅读推荐】

    小米嵌入式软件工程师笔试题目解析

    在深圳做嵌入式,大疆公司绝对是Top级别的,大疆的技术栈也很深。但2020受美国制裁后,有所缩招。另外提醒,研发岗对学历要求高一些。

    大疆公司每年秋招是分批考试,考试时间自选,分为AB卷,本文分享是B卷。

    选考时间:2020.08.16,19:00-20:30(A卷为2020.08.10)

    题型:单选(2' * 10)、多选(3' * 5)、填空(4' * 4)、简答(6' * 3)、编程( * 2 = 31')

    B卷主要考察C语言,还考察一些Liunx和ARM知识点

    一、单选

    1、

    const  *char 和 const char* 定义变量的区别
    

    2、关于cache错误的是?

    3、sizeof 结构体(含位域的)

    unit16_t
    unit32_t
    unit8_t
    

    4、FIQ中断向量入口地址?(考察ARM知识点)

    回答:FIQ的中断向量地址在0x0000001C,而IRQ的在0x00000018。

    5、R15除了本身的功能还可以作为程序计数器?

    回答:寄存器R13在ARM指令中常用作堆栈指针SP,寄存器R14称为子程序链接寄存器LR(Link Register),寄存器R15用作程序计数器(PC)。

    ARM微处理器共有37个32位寄存器,其中31个为通用寄存器,6个位状态寄存器。通用寄存器R0~R14、程序计数器PC(即R15)是需要熟悉其功能的。

    6、如何判断机器大小端?

    联合体方法判断方法:利用union结构体的从低地址开始存,且同一时间内只有一个成员占有内存的特性。大端储存符合阅读习惯。联合体占用内存是最大的那个,和结构体不一样。

    a和c公用同一片内存区域,所以更改c,必然会影响a的数据

    #include<stdio.h>
    
    int main(){
      union w
      {
          int a;
          char b;
      }c;
      c.a = 1;
      if(c.b == 1)
       printf("小端存储\n");
      else
       printf("大端存储\n");
     return 0;
    }
    

    指针方法

    通过将int强制类型转换成char单字节,p指向a的起始字节(低字节)

    #include <stdio.h>
    int main ()
    {
        int a = 1;
        char *p = (char *)&a;
        if(*p == 1)
        {
            printf("小端存储\n");
        }
        else
        {
            printf("大端存储\n");
        }
        return 0;
    }
    

    二、多选

    1、哪些类型可以自加:i++

    2、全双工总线类型有哪几个?

    3、线程间同步方式?

    进程间通讯:

    (1)有名管道/无名管道(2)信号(3)共享内存(4)消息队列(5)信号量(6)socket

    线程通讯:

    (1)信号量(2)读写锁(3)条件变量(4)互斥锁(5)自旋锁

    三、填空

    1、填一种编译优化选项:-o

    2、在有数据cache情况下,DMA数据链路为:外设-DMA-DDR-cache-CPU,CPU需要对cache做什么操作,才可以得到数据?

    3、面向对象编程三大特点?

    回答:封装、继承和多态

    四、简答

    1、SPI四种模式,简述其中一种模式,画出时序图?

    回答:请参考CSDN博客。

    2、判断大小端的三种方式?

    3、为什么TCP是稳定传输?

    回答:可以从TCP和UDP的区别出发去回答。

    五、编程

    1、求最大的和:

    取两个不重复的字串,求他们的最大的和

    输入

    10
    1 -1 2 2 3 -3 4 -4 5 -5
    

    取 2、2、3、-3、4、5,最大输出13

    输入

    5
    -5 9 -5 11 20
    

    取9、11、20,加起来40

    输入

    10
    -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
    

    答案是-2

    2、停车,求收费最多(数据太多,可能有误,自己可以想思路)

    用户编号    1      2      3      4
    开始时间    1      2      3      7
    结束时间    4      4      12     9
    

    同一时间只能服务一个用户

    1<=t<6     10元一小时
    6<=t<10    5元一小时
    10<=t      2元一小时

    5T技术资源大放送!包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。在公众号内回复「peter」,即可免费获取!!

     记得点击分享在看,给我充点儿电吧

    展开全文
  • 2020大疆笔试大题(数字IC)

    千次阅读 2021-04-05 18:44:37
    2020大疆笔试大题(数字IC) 题目描述:设计一个电路,使用时序逻辑对一个单bit信号进行毛刺滤除操作。高电平或者低电平宽度小于4个时钟周期的为毛刺。用verilog写出代码 解题思路 1 定义两个计数器:一个高电平...

    2020大疆笔试大题(数字IC)

    题目描述:设计一个电路,使用时序逻辑对一个单bit信号进行毛刺滤除操作。高电平或者低电平宽度小于4个时钟周期的为毛刺。用verilog写出代码

    解题思路

    1 定义两个计数器:一个高电平计数器和低电平计数器,高电平计数器在输入为高的时候计数,计数到3或者检测到低电平清零;低电平计数器在输入为低的时候计数,计数到3或者检测到高电平清零。
    2 当计数器计数到3且输入为对应电平(高电平计数器计数到3且输入电平为高、低电平计数器计数到3且输入电平为低),则表示不是毛刺,可以输出。

    下面展示 vivado Verilog代码:

    module edge_detector(
        input           clk,
        input           rstn,
        input           data_in,
        output  reg     data_out
        );
        
        reg  [1:0]      cunt_h;
        reg  [1:0]      cunt_l;
     
     // 检测高电平毛刺   
        always @(posedge clk)
        begin
        if(!rstn)
            cunt_h <= 2'd0;
        else if(!data_in)
            cunt_h <= 2'd0;
        else 
            cunt_h <= cunt_h + 1'b1;
        end
        
     // 检测低电平毛刺
     always @(posedge clk)
     begin
        if(!rstn)
            cunt_l <= 2'd0;
        else if (data_in)
            cunt_l <= 2'd0;
        else 
            cunt_l <= cunt_l +1'b1;
     end
     
     always @(posedge clk)
     begin
        if(!rstn)
            data_out <= 1'b0;
        else if((cunt_h == 2'b11 && data_in)| (cunt_l == 2'b11 && ~data_in))
            data_out <= data_in;
     end
        
    endmodule
    

    下面展示一些 vivado 仿真代码

    module tb_edge_detector(
        );
        
        reg         clk;
        reg         rstn;
        reg         data_in;
        
        initial begin
        clk = 1'b0;
        end
        always #5 clk = ~clk;
        
        initial begin
                rstn = 1'b1;
        #100    rstn = 1'b0;
        #100    rstn = 1'b1; 
        end
        
        initial begin
                    data_in = 1'b0;
            #220    data_in = 1'b1;
            #60     data_in = 1'b0;
            #20     data_in = 1'b1;
            #80     data_in = 1'b0;
            #100    data_in = 1'b1;
            #10     data_in = 1'b0;
        end
       
       
        wire                data_out;
        edge_detector edge_detector_i(
            .clk            (clk        ),
            .rstn           (rstn       ),
            .data_in        (data_in    ),
            .data_out       (data_out   )
            );
        
        
        
    endmodule
    

    下面是仿真结果:
    在这里插入图片描述
    从图中可以看出小于4个clk的低电平毛刺和高电平毛刺都可以被滤除。

    原文链接:https://blog.csdn.net/weixin_45912567/article/details/107954965

    展开全文
  • 大疆笔试0804

    2019-08-05 11:50:04
    笔试两种题型:12道不定项选择和三道编程题 第一题: 输入:多组测试数据。每组测试数据如下 第一行输入三个整数:N、A、X,分别代表需要解决的bug数量、喝咖啡之后效率提升的倍数、一天最多可以喝掉的咖啡数 第...

    岗位:后端研发

    笔试两种题型:12道不定项选择和三道编程题

    第一题:

        输入:多组测试数据。每组测试数据如下

                    第一行输入三个整数:N、A、X,分别代表需要解决的bug数量、喝咖啡之后效率提升的倍数、一天最多可以喝掉的咖啡数

                    第二行输入N个整数,表示在不喝咖啡的情况下解决这些八阿哥所需的时间t1, t2, ..., tN

        输出:如果能在八小时内解决这些bug(如果时间为小数,向上取整),输出解决bug的时间,否则输出0

        case:input: 

              8 2 8

              60 60 60 60 60 60 60 60

              4 3 3

              333 77 100 13

             output:

              240

              175

    第二题:

        输入:多组测试数据

                第一行输入两个整数T、N,分别代表钱数和零食种类数。

                接下来的N行,每行输入三个整数ai, bi, ci(1 <= i <= N) ,代表零食的价格、零食的满意度、零食的数量

        输出:求出最大满意度

        case:input

                100 2

                1 1 1

                1 1 1

                100 3

                26 100 4

                5 1 4

                5 2 2

            output

                2

                306

    第三题:单源最短路径问题 (迪杰斯特拉算法)用代码实现遇到麻烦 题目和测试用例都不记得了。此题略过

     

    贴上第一题和第二题的代码:

    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    int main0() {
    	int N, A, X;
    	while (!cin.eof()) {
    		cin >> N >> A >> X;
    		int tmp;
    		int time = 0;
    		int sum = 0;
    		for (int i = 0; i < N; ++i) {
    			cin >> tmp;
    			sum += tmp;
    		}
    		int coffeTime = A * X * 60;
    		if (coffeTime > sum) {
    			time = ceil((double)(sum) / (double)A);
    		}
    		else {
    			time = sum - coffeTime + ceil((double)(sum) / (double)A);
    		}
    		if (time > 480) {
    			cout << 0;
    		}
    		else {
    			cout << time;
    		}
    	}
    	return 0;
    }
    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    struct backpack
    {
    	int p;  //价格
    	int sat;  //满意度
    } item[2001];   // 零食列表
    int main()
    {
    	int money, num;
    	int price, satisDegree, curNum;
    	int i, j;
    	int c;
    	cin >> money >> num;             //money表示总钱数,num表示零食的种类
    	int index = 0;  //拆分后零食的总数 拆分的目的是降低时间复杂度
    	// 二进制优化的方法
    	for (i = 1; i <= num; i++)
    	{
    		c = 1;
    		cin >> price >> satisDegree >> curNum;       //price表示价格,satisDegree表示满意度,curNum表示该零食的数量。
    		while (curNum - c>0)     // 1 2 4 8 (1-15)
    		{
    			curNum -= c;
    			item[++index].p = c*price;
    			item[index].sat = c*satisDegree;
    			c *= 2;
    		}
    		item[++index].p = price*curNum;  //补充不足指数的差值
    		item[index].sat = satisDegree*curNum;
    	}
    	vector<int> dp(money + 1);   //dp[i]代表钱数为i的时候获得的最大满意度
    	for (i = 1; i <= index; i++)   //对拆分后的物品进行0-1背包
    	{
    		for (j = money; j >= item[i].p; j--)
    			dp[j] = max(dp[j], dp[j - item[i].p] + item[i].sat);
    	}
    	printf("%d/money", dp[money]);
    	return 0;
    }

     

    展开全文
  • 大疆笔试

    2020-08-16 21:32:07
    #include<iostream> #include<vector> using namespace std; int main() { int N, X; cin >> N >> X; vector<int> value, day; int day_t, value_t;... valu...

    在这里插入图片描述
    在这里插入图片描述

    
    #include<iostream>
    #include<vector>
    
    using namespace std;
    
    int main()
    {
    	int N, X;
    	cin >> N >> X;
    	vector<int> value, day;
    	int day_t, value_t;
    	while (cin >> value_t >> day_t)
    	{
    		day.push_back(day_t);
    		value.push_back(value_t);
    	}
    	vector<vector<int>> dp(N + 1, vector<int>(X + 1, 0));
    	int res = 0;
    	for (int i = 1; i <= N; ++i)
    	{
    		for (int j = 1; j <= X; ++j)
    		{
    			dp[i][j] = dp[i - 1][j];
    			if (j >= day[i - 1])
    			{
    				dp[i][j] = max(dp[i][j], dp[i - 1][j - day[i - 1]] + value[i - 1]);
    			}
    			res = max(res, dp[i][j]);
    
    
    		}
    	}
    	cout << res << endl;
    }
    

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    #include<iostream>
    #include<vector>
    #include<unordered_map>
    #include<algorithm>
    using namespace std;
    
    void DFS(unordered_map<int, vector<pair<int, int>>>& mps, unordered_map<int, bool>& visit, int a, int& res, int end, int sum)
    {
    	if (a == end)
    	{
    		res = min(res, sum);
    		return;
    	}
    	for (auto mp : mps[a])
    	{
    		if (visit[mp.first]) continue;
    		sum += mp.second;
    		visit[mp.first] = true;
    		DFS(mps, visit, mp.first, res, end, sum);
    		visit[mp.first] = false;
    		sum -= mp.second;
    	}
    	return;
    }
    
    int main()
    {
    	int N, P;
    	cin >> N >> P;
    	unordered_map<int, vector<pair<int, int>>> mps;
    	unordered_map<int, bool> visit;
    	for (int i = 0; i < P; ++i)
    	{
    		int A, B, T;
    		cin >> A >> B >> T;
    		mps[A].push_back(make_pair(B, T));
    		visit[A] = false;
    		visit[B] = false;
    	}
    	int end;
    	cin >> end;
    	int res = 10000;
    	DFS(mps, visit, 0, res, end, 0);
    	cout << res << endl;
    	return 0;
    }
    
    
    
    
    #include<iostream>
    #include<vector>
    
    using namespace std;
    
    int main()
    {
    	int N, X;
    	cin >> N >> X;
    	vector<int> value, day;
    	int day_t, value_t;
    	while (cin >> value_t >> day_t)
    	{
    		day.push_back(day_t);
    		value.push_back(value_t);
    	}
    	vector<vector<int>> dp(N + 1, vector<int>(X + 1, 0));
    	int res = 0;
    	for (int i = 1; i <= N; ++i)
    	{
    		for (int j = 1; j <= X; ++j)
    		{
    			dp[i][j] = dp[i - 1][j];
    			if (j >= day[i - 1])
    			{
    				dp[i][j] = max(dp[i][j], dp[i - 1][j - day[i - 1]] + value[i - 1]);
    			}
    			res = max(res, dp[i][j]);
    
    
    		}
    	}
    	cout << res << endl;
    }
    
    展开全文
  • 2021大疆笔试

    2020-08-17 22:02:33
    单选题 1、FPGA是基于查找表结构的可编程逻辑器件 FPGA中有两种可调用的存储资源 基于SRAM的FPGA器件,每次上电后必须重新进行配置 XC7A50T是FPGA芯片 5、关于网表仿真,一下哪一项是正确的?...
  • 大疆笔试题之不听话的机器人,题目如下 不听话的机器人 时间限制:CC+语言100Ms;其他语言3000s 内存限制:CC+语言6556KB;其他语言589824KB 题目描述:小平时言欢倒腾一些小东西,最近他准备给白己做的小机器人加入一套...
  • 在做大疆笔试题时有个一个最小二乘矩阵求解问题的简答题,当时紧张完全有点蒙逼,写了一部分,但是没有做好,所以下来总结一下经验教训,加深记忆。(最好还是多看看矩阵微分和积分,本人这方面学的不好,感觉要好好...
  • 20190806大疆笔试两题

    2019-08-07 10:42:17
    笔试两题一、爱玩游戏的小J二、不听话的机器人 一、爱玩游戏的小J 时间限制:C/C++语言 1000MS;其他语言 3000MS 内存限制:C/C++语言 65536KB;其他语言 589824KB 题目描述: 有许多程序员都热爱玩游戏游戏,而小J...
  • 【编程题】应该吃哪个呢(大疆笔试19/08/04) 题目来源 大疆服务端开发笔试A卷(2019/08/04) 题目描述 笔试题二:应该吃哪个呢 小明在购物架买东西,每个格子放着一种物品,上面标记价格,数目和满意度,小名...
  • 【编程题】不听话的机器人(Java实现)(大疆笔试B卷第二题) 题目来源 大疆笔试B卷第二题(2019.8.6) 题目描述 小B平时喜欢倒腾些小东西 ,最近他准备给自己做的小机器人加入一套语音控制的功能,每个指令对应一个...
  • 2020大疆笔试题回忆版

    万次阅读 2019-08-06 22:57:13
    2019回忆版链接:卷一、卷二 一、单选 自适应优化算法、数据不平衡的处理、特征图计算、牛顿法、 二、多选 过拟合解决方法、BN与LNGN比较、sigmoid、偏差和方差、droupout ...3. SGD, momentum....
  • 0816大疆笔试B卷

    2020-08-18 16:35:07
    编程题1 题目描述: 最近DJI发布了一款Robomaster S1机器人,小伙伴们都沉迷其中不能自拔。小J为了能够在竞速比赛中迅速获胜,他决定利用开发的优势,在里面植入一套最优化的寻路算法。 比赛规则如下: 在比赛场地内...
  • 典型的动态规划问题,不过一些细节处理起来还是很糟心的,可以参考https://www.cnblogs.com/leokale-zz/p/12381855.html的解析 现在有一个服务收费方案:在时间段1st<6内,每单位时间收费为10元;...
  • 【编程题】爱玩游戏的小J(Java实现)(大疆笔试B卷) 题目来源 大疆笔试B卷第一题 题目描述 有许多程序员都热爱玩游戏游戏,而小自称为游戏王,曾玩过几百种游戏,几乎所有能玩到的游戏大作都玩遍了。随着时间的...
  • 一、选择题 可以进行++操做的对象(给的有常量、int、float、double等) 内联函数(对编译器/连接器是否可见) 宏函数的处理阶段 线程间同步的方法 #difine 的变量不可改变 ...const 关键字修饰的变量不可变 ...
  • 2019年大疆笔试题 —— 两个电路板(开关闭开和灯泡明暗)题目描述:小A是一名DIY爱好者,经常制作一些有趣的东西。今天,小A突然想要来做这样一个东西。小A现在有两块同样大小为n×m,有n×m块大小为1×1小电路板拼...
  • 有不确定的多组数据,用hasNext(),笔试的时候用hasNextLine把自己坑了…… import java . util . Scanner ; //import java.util.*; public class Main { public static void main ( String ...
  • 大疆笔试题目总结--参考历届试卷

    千次阅读 2021-08-13 14:59:54
    一、题型分析 1、选择题(单选题、多选题); 2、填空题; 3、简答题; 4、编程题。 二、题目解析 1、选择题 (1)sizeof union和struct 解答: 涉及知识点:数据类型字节长度和内存对齐。...可参考:快速理解内存对齐...
  • IC/FPGA大疆笔试题分析(预分析)

    千次阅读 2019-08-04 15:51:00
    上午刚参加完一场面试,晚上又有大疆的FPGA笔试题要做,下午临时磨刀,找点往年的笔试题练练手: 1 如果只使用2选1mux完成异或逻辑,至少需要几个mux? 这类问题,我在以前的博客中练习过:...
  • 2020-08-16大疆笔试

    2020-08-16 21:05:35
    public class 大疆_1 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int N=scanner.nextInt(); int P=scanner.nextInt(); int INFINITY=9999; int vexnum=N; //...
  • 2019校招大疆笔试题计算期望

    千次阅读 2018-07-11 09:19:07
    来填个坑,大疆的线上笔试在赛码网平台,博主一直没收到面试通知,去官网看了下发现笔试不通过0-0 不知道这家公司是不是不怎么缺人。不但题出的巨坑且还不给过,不建议投这家公司,有点浪费时间咯。并不是因为别的,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 734
精华内容 293
关键字:

大疆笔试