首页 / 客观题库

Q80038 - C++编程预备组选择题38

题目( 单选题 )

以下DFS代码用于查找最大连通陆地区域的大小其中1表示陆地,0表示水域,区域由水平或垂直方向上相邻的1连接而成。缺少的程序应为.

#include <iostream>

#include <vector>

using namespace std;

int dfs(vector<vector<int>>& grid, int i, int j) {

    int n = grid.size(), m = grid[0].size();

    if (i < 0 || i >= n || j < 0 || j >= m || grid[i][j] == 0)

        return 0;

    grid[i][j] = 0;

    int area = 1;

    area += dfs(grid, i+1, j);

    area += dfs(grid, i-1, j);

    area += dfs(grid, i, j+1);

    area += dfs(grid, i, j-1);

    return area;

}

int maxArea(vector<vector<int>>& grid) {

    int maxArea = 0;

    for (int i = 0; i < grid.size(); i++) {

        for (int j = 0; j < grid[0].size(); j++) {

            if (grid[i][j] == 1) {

                maxArea = _____________;

            }

        }

    }

    return maxArea;

}

int main() {

    vector<vector<int>> grid = {

        {1, 1, 0, 0, 0},

        {1, 1, 0, 1, 1},

        {0, 0, 0, 1, 1},

        {0, 0, 0, 1, 1}

    };

    cout << maxArea(grid) << endl;

    return 0;

}

A max(maxArea, dfs(grid, i, j))

B max(maxArea, dfs(grid, i+1, j))

C max(maxArea, dfs(grid, i, j-1))

D max(maxArea, dfs(grid, i+1, j+1))

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36