大疆笔试

后端开发

40min交卷,难度我觉得甚至不如多益。

不过笔试这么简单,肯定要卡学历了。
全部评论
无人机路径优化那题是不是用贪心啊?我只过了86,不知道哪有问题
2 回复 分享
发布于 08-18 20:33 浙江
无人机为什么只过了50,逻辑上感觉没啥问题,错误也没啥提示
2 回复 分享
发布于 08-18 20:36 四川
终止条件咋判断的啊
2 回复 分享
发布于 08-18 20:38 安徽
记录历史状态,状态包括位置和方向,遇到同一个状态说明陷入循环。
1 回复 分享
发布于 08-18 20:50 北京
佬,无人机题思路是啥呀
1 回复 分享
发布于 08-18 20:50 四川
佬太强了
点赞 回复 分享
发布于 08-18 20:23 广东
第一题的无人机啥意思呀
点赞 回复 分享
发布于 08-18 20:31 广东
就过了50😭
点赞 回复 分享
发布于 08-18 20:31 北京
大佬算法题考了啥?
点赞 回复 分享
发布于 08-18 20:32 浙江
第二题咋过100 就过了86
点赞 回复 分享
发布于 08-18 20:32 辽宁
算法就1道题吧?我傻了,怎么看有人说有两道。最后10分那个简答题有两道,我脑子抽一直在写第一题,时间快没了才知道有第二题,我去
点赞 回复 分享
发布于 08-18 20:37 浙江
是不是只有一道编程和一道简答题,我怕我漏做了都,我也是后端
点赞 回复 分享
发布于 08-18 20:43 广东
后端 b卷 无人机 int func(vector<vector<int>> block) { int n = block.size(), m = block[0].size(); int ans = 0; int dir[4][2] = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}}; // 右 下 左 上 vector<vector<bool>> st(n, vector(m, false)); function<bool(int, int, int)> dfs = [&amp;](int x, int y, int dir) { if(x < 0 || x >= n || y < 0 || y >= m || block[x][y] == 1) return false; if(st[x][y]) { return true; } else { ++ ans; } st[x][y] = true; for(int k = 0; k < 4; ++ k) { int i = x + d[(dir + k) % 4][0], y = x + d[(dir + k) % 4][1]; if(dfs(i, j, (dir + k) % 4)) { return true; } } return true; }; dfs(0, 0, 0); return ans; }
点赞 回复 分享
发布于 08-18 20:48 重庆
佬,无人机代码瞅瞅呗
点赞 回复 分享
发布于 08-18 20:52 四川
def answer(block): rows,cols = len(block),len(block[0]) directions = [(0,1),(1,0),(0,-1),(-1,0)] direction = 0 x,y = 0,0 count = 0 visited= [[False]*cols for _ in range(rows)] while not visited[x][y]: visited[x][y]= True count +=1 fine_next= False for _ in range(4): new_x,new_y = x+directions[direction][0],y+directions[direction][1] if 0<=new_x <rows and 0<=new_y <cols and block[new_x][new_y]==0: x , y = new_x , new_y find_next=True if find_next: break direction = (direction+1)%4 if not find_next: break return count
点赞 回复 分享
发布于 08-18 21:08 上海
有没有大佬能帮忙看看哪里有问题,50%通过率。 public int numberOfPatrolBlocks(int[][] block) { this.block = block; visited = new boolean[block.length][block[0].length]; return patrol(0, 0, 0); // 从(0, 0)开始,面向右边 } private int patrol(int x, int y, int direction) { if (x < 0 || x >= block.length || y < 0 || y >= block[0].length || block[x][y] == 1 || visited[x][y]) { return 0; } visited[x][y] = true; int count = 1; for (int i = 0; i < 4; i++) { int newDirection = (direction + i) % 4; int nx = x + deltas[newDirection][0]; int ny = y + deltas[newDirection][1]; if (nx >= 0 &amp;&amp; nx < block.length &amp;&amp; ny >= 0 &amp;&amp; ny < block[0].length &amp;&amp; block[nx][ny] == 0 &amp;&amp; !visited[nx][ny]) { count += patrol(nx, ny, newDirection); } } return count; } }
点赞 回复 分享
发布于 08-18 22:06 陕西
编程好写,但是不定项基本懵的,且分值还最高,感觉要寄
点赞 回复 分享
发布于 08-18 22:53 天津

相关推荐

2 1 评论
分享
牛客网
牛客企业服务