京东客户端第二题,一直9% 到底哪错了 求大神解答

测试用例 
1//一组数据
2 2//行和列数
#E//#是障碍物,不可走  E是开始S是结束
S#


#include <string.h>
#include <stdio.h>
#include<iostream>
#include<vector>
#include <sstream>
#include <algorithm>
using namespace std; 

bool cando(vector<vector<char>> a,int sx,int sy,int ex,int ey){
	//cout<<"find "<<sx<<" "<<sy<<endl;
	if(sx==ex&&sy==ey)
		return true;
	if(sx<0||sx>=a.size()||sy<0||sy>=a[0].size()||a[sx][sy]!='.')
		return false;
	char temp=a[sx][sy];
	a[sx][sy]='#';
	bool res=cando(a,sx+1,sy,ex,ey)||cando(a,sx-1,sy,ex,ey)||cando(a,sx,sy+1,ex,ey)||cando(a,sx,sy-1,ex,ey);
	a[sx][sy]=temp;
	return res;
}


int main(){
	int t;
	cin>>t;
	int tt=t;
	vector<string> res_s;
	while(t--){
		int n,m;
		cin>>n>>m;
		vector<vector<char>> a;
		int i,j;
		int sx,sy,ex,ey;
		for(i=0;i<n;i++){
			vector<char> temp;
			for(j=0;j<m;j++){
				char tt;
				cin>>tt;
				temp.push_back(tt);
				if(temp[j]=='S'){
					sx=j;
					sy=i;
					temp[j]='.';
				}
				if(temp[j]=='E'){
					ex=j;
					ey=i;
					temp[j]='.';
				}
			}
				
			a.push_back(temp);
		}
		//cout<<a.size()<<" "<<a[0].size()<<endl;
		//cout<<sx<<" "<<sy<<" "<<ex<<" "<<ey<<endl;
		if(cando(a,sx,sy,ex,ey))
			res_s.push_back("YES");
		else res_s.push_back("NO");
	}
	for(int i=0;i<res_s.size();i++)
		cout<<res_s[i]<<endl;
}


#京东##笔试题目#
全部评论

相关推荐

用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务