滴滴出行2017春招算法工程师笔试题b卷岛屿问题

我的代码如下,本地能通过,但上传后通过率0%,希望大神给指出错误。
#include<iostream>
#define N 10
#define M 10
using namespace std;

int a[N][M];
int main(){
	int n, m;
	cin >> n >> m;
	int i, j;
	
	for(i=0; i<n; ++i){//输入
		for(j=0; j<m; ++j){
			int x;
			//cin >> x;
			scanf("%1d", &x);
			a[i][j] = x;
		}
		fflush(stdin);
	}
	/*
	for(i = 0; i < n; i++){
		for(j = 0; j < m; j++){
			int x; scanf("%d",&x);
			a[i][j]= x;
		}
	}
	*/
	for(i=0; i<n; ++i){//横向
		for(j=m-1; j>0; --j){
			if(a[i][j] == 1){
				if(a[i][j-1] == 1)
					a[i][j] = 0;
			}
		}
	}
	for(j=0; j<m; ++j){//纵向
		for(i=n-1; i>0; --i){
			if(a[i][j] == 1){
				if(a[i-1][j] == 1)
					a[i][j] = 0;
			}
		}
	}
	int sum = 0;//求和
	for(i=0; i<n; ++i)
		for(j=0; j<m; ++j)
			if(a[i][j] == 1)
				++sum;

	cout << sum << endl;

	/*调试用
	for(i=0; i<n; ++i){
		for(j=0; j<m; ++j){
			cout << a[i][j] << ' ';
		}
		cout << endl;
	}
	*/
	return 0;
}

全部评论
据说输入的是字符串
点赞 回复 分享
发布于 2017-05-07 21:09
我本地也能通过,但就是一直提示数组越界!!
点赞 回复 分享
发布于 2017-05-07 21:10
输入的是字符串???
点赞 回复 分享
发布于 2017-05-07 21:11
岛屿是‘1’,海洋是‘0’,2333
点赞 回复 分享
发布于 2017-05-07 21:24
你这个算法本身就有问题啊 2 4 1001 1111 你输出的是2,答案应该是1 应该用bfs去做
点赞 回复 分享
发布于 2017-05-07 21:29
leetcode原题,通过递归上下左右通过记录 保证不重复出现
点赞 回复 分享
发布于 2017-05-07 21:37
广度优先遍历,联通子图个数
点赞 回复 分享
发布于 2017-05-08 08:01

相关推荐

10-22 19:18
上海大学 后端
jopajhhdjwnqk:水印都叠杀人书了
点赞 评论 收藏
分享
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务