大疆笔试
后端开发
40min交卷,难度我觉得甚至不如多益。
不过笔试这么简单,肯定要卡学历了。
40min交卷,难度我觉得甚至不如多益。
不过笔试这么简单,肯定要卡学历了。
全部评论
无人机路径优化那题是不是用贪心啊?我只过了86,不知道哪有问题
无人机为什么只过了50,逻辑上感觉没啥问题,错误也没啥提示
终止条件咋判断的啊
记录历史状态,状态包括位置和方向,遇到同一个状态说明陷入循环。
佬,无人机题思路是啥呀
佬太强了
第一题的无人机啥意思呀
就过了50😭
大佬算法题考了啥?
第二题咋过100 就过了86
算法就1道题吧?我傻了,怎么看有人说有两道。最后10分那个简答题有两道,我脑子抽一直在写第一题,时间快没了才知道有第二题,我去
是不是只有一道编程和一道简答题,我怕我漏做了都,我也是后端
后端 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 = [&](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;
}
佬,无人机代码瞅瞅呗
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
有没有大佬能帮忙看看哪里有问题,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 && nx < block.length && ny >= 0 && ny < block[0].length && block[nx][ny] == 0 && !visited[nx][ny]) {
count += patrol(nx, ny, newDirection);
}
}
return count;
}
}
编程好写,但是不定项基本懵的,且分值还最高,感觉要寄
相关推荐
投票
投递滴滴等公司10个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享