百度C++岗2017笔试第三题分析
来源:互联网 发布:sql数据库实训总结 编辑:程序博客网 时间:2024/06/06 03:21
百度C++岗2017年笔试题 第三题:
为了进程城市规划,需要计算居民区的住宅数目。该区域是一个n*m的网格,如果有屋顶则为1,
如果是空地则为0.有1组成的相邻网格单元组成的簇为一个单独住宅。对角为1不是。
输入:小区的图,由0,1表示
输出:住宅总数。
解题思路:对于每一个访问到的格子,先让它为0,然后递归访问上下左右的格子
为1,则继续访问,为0则退出。
#include <iostream>#include <vector>#include <string>#include <algorithm>#include <random>using namespace std;//递归函数:访问i, j位置的四周的点void dfs(vector<vector<int>>& matrix, int i, int j){ if (i < 0 || i > matrix.size() - 1 || j < 0 || j > matrix[0].size() - 1) return; if (matrix[i][j] == 0) return; else { matrix[i][j] = 0; dfs(matrix, i - 1, j); dfs(matrix, i + 1, j); dfs(matrix, i, j - 1); dfs(matrix, i, j + 1); }}//得到住宅总数int getNum(vector<vector<int>>& matrix){ int res = 0; for (int i = 0; i < matrix.size(); ++i) { for (int j = 0; j <matrix[0].size(); ++j) { //为1才访问 if (matrix[i][j] == 1) { res++; dfs(matrix, i, j); //递归 } } } return res;}int main(){ int m; int n; //测试用 while (cin >> m, cin >> n) { vector<vector<int>> matrix; matrix.resize(m, vector<int>(n, 0)); for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { matrix[i][j] = rand()%2; } } for (auto v : matrix) { for (auto i : v) cout << i << " "; cout << endl; } cout << getNum(matrix) << endl; }}/*测试用例:1 41 1 0 012 51 0 0 0 00 1 1 1 123 61 1 1 0 1 01 0 0 1 0 01 0 0 1 1 035 51 0 1 0 11 1 0 1 10 1 1 0 11 1 0 1 00 1 1 1 136 61 1 0 0 1 00 0 0 0 0 00 0 1 0 1 00 0 1 1 0 11 0 0 0 0 00 1 0 0 1 08*/
0 0
- 百度C++岗2017笔试第三题分析
- [c++]百度笔试题
- 百度2012校招笔试题分析
- 百度2014研发类校招笔试题分析
- 百度笔试两道C语言题
- 百度-C语言-笔试
- 2017百度实习生春招java笔试题 输出第三便宜价格
- 百度校招2018笔试题第三题
- 一百度笔试题目分析
- 2012百度笔试 试题分析
- 百度笔试题------层次遍历二叉树分析
- 19 Feb 12 百度2012校招笔试题分析
- 百度2013校园招聘笔试题 个人答案分析
- 百度2013校园招聘笔试题 个人答案分析
- C++笔试题深度分析 第三波 上
- C++笔试题深度分析 第三波 下
- C语言50题之百度笔试题
- 百度笔试编程题:爬行的蚂蚁(c++)
- pandas写入csv文件
- #Hadoop 管理(一)
- jquery无缝轮播图
- 使用ffmpeg实现视频连接
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- 百度C++岗2017笔试第三题分析
- 10 steps to becoming the developer everyone wants(10步让你成为抢手的开发人员)
- 总结mysql的三种外键约束方式
- 操作系统
- Hibernate与Mybatis的区别要点整理
- 【PHP】强大的filter_var
- bzoj 2120: 数颜色
- JavaScript做浏览器检测
- poj 3177 Redundant Paths(边双连通分量+缩点)★