今日头条AC4.8很迷

第二题一直0.8,有大佬AC了嘛#字节跳动##笔试题目#
全部评论
题目说矩阵是M*M,但是测试用例有M*N的
点赞 回复 分享
发布于 2018-09-09 12:56
ak
点赞 回复 分享
发布于 2018-09-09 12:38
4.3
点赞 回复 分享
发布于 2018-09-09 12:34
大佬可以发下代码吗,,学习一下
点赞 回复 分享
发布于 2018-09-09 12:27
我之前也是四个方向,后来改成两个方向就ac了!因为你是从左上角开始遍历到右下角的,所以两个方向就可以了!
点赞 回复 分享
发布于 2018-09-09 12:16
我也是4.8明显比第一次的简单
点赞 回复 分享
发布于 2018-09-09 12:15
我也是0.8,说数组越界,查了半天没越界啊
点赞 回复 分享
发布于 2018-09-09 12:15
5道题做对的加起来不超过两道,我是不是可以不用关注后续了。。。
点赞 回复 分享
发布于 2018-09-09 12:10
我第二题也一直0.8,说数组越界
点赞 回复 分享
发布于 2018-09-09 12:09
同样的思路,我改成了c++就是ac
点赞 回复 分享
发布于 2018-09-09 12:08
0.8很迷
点赞 回复 分享
发布于 2018-09-09 12:07
#include <iostream> #include <vector> using namespace std; const int direction[4][2] = { {-1,0}, // 上 {1,0}, // 下 {0,1}, // 右 {0,-1} // 左 }; void helper(vector<vector<int>>& matrix, int x, int y, vector<vector<bool>>& visited) { int M = matrix.size(); for(int i=0;i<4;i++) { int tmp_x = x + direction[i][0]; int tmp_y = y + direction[i][1]; if(tmp_x<0 || tmp_y<0 || tmp_x>=M || tmp_y>=M) { continue; } if(matrix[tmp_x][tmp_y]==1 && !visited[tmp_x][tmp_y]) { visited[tmp_x][tmp_y] = true; helper(matrix, tmp_x, tmp_y, visited); } } } int main(int argc, char* argv[]) { int M = 0; while(cin>>M) { vector<vector<int>> matrix(M, vector<int>(M)); for(int i=0;i<M;i++) { for(int j=0;j<M;j++) { cin >> matrix[i][j]; } } int num = 0; vector<vector<bool>> visited(M, vector<bool>(M, false)); for(int i=0;i<M;i++) { for(int j=0;j<M;j++) { if(matrix[i][j]==1 && !visited[i][j]) { visited[i][j] = true; num++; helper(matrix, i, j, visited); } } } cout << num << endl; } return 0; }
点赞 回复 分享
发布于 2018-09-09 12:06

相关推荐

04-25 19:29
已编辑
宁波大学 运营
被普调的六边形战士很高大:你我美牛孩
点赞 评论 收藏
分享
渐好:软光栅真的写明白了吗,既然是软渲那技术栈不应该使用OpenGL,光追和bvh既不算什么高级渲染技术更不应该属于软渲的内容,git那个项目没啥用,建议把前两个项目重新组织一下语言,比如软渲染那个项目 冯着色和msaa、贴图这几项分开写,写的到位点,如果你还学过光追那就单独写出来,如果没把握考官问你答不上来就别写给自己找麻烦,在技术栈那一栏简单提一下自己学过就行,这样杂的放在一起不太严谨,个人愚见.
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务