本地编译可以通过赛码网就是过不了
发布于 2017-09-10 21:11 2142 次浏览 0 赞 来自 试题交流  

//今晚上的盛大游戏,一道求岛屿个数的编程题,LeetCode上有原题,所以很快就写出来了!然后本地通过,但是但是,赛码网上就是一直提示所有数据均未输出正确结果!求大神指点!

#include<iostream>

#include<vector>


using namespace std;


bool dfs(int i, int j, vector<vector<int>>& matrix)

{

if (i >= 0 && i <= matrix.size() && j >= 0 && j <= matrix[0].size() && matrix[i][j] == 1)

{

matrix[i][j] = 0;

dfs(i + 1, j, matrix);

dfs(i - 1, j, matrix);

dfs(i, j + 1, matrix);

dfs(i, j - 1, matrix);

return true;

}

else

return false;

}


int numIslands(vector<vector<int>>& matrix)

{

int res = 0;

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

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

{

if (dfs(i, j, matrix) == true)

res++;

}

return res;

}


int main()

{

int n, m;

cin >> n >> m;

vector<vector<int>> matrix(n, vector<int>(m, 0));

for (int i = 0; i<n; i++)

for (int j = 0; j<m; j++)

cin >> matrix[i][j];

int number = numIslands(matrix);

cout << number << endl;

return 0;

}


2 条回复

输入是11110   不是1 1 1 1 0

2017-09-10 21:22

是字符串

2017-09-10 21:23
添加回复
回到顶部