问题遇到的现象和发生背景
AcWing1206.剪格子
第四届蓝桥杯省赛JAVAA/C组真题
原题和我的思路都在https://blog.csdn.net/Hokachi/article/details/128539208
遇到的现象和发生背景,请写出第一个错误信息
我的“判断是否联通”方法有bug,不能判断下图情况。
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
//判断是否相连
public static boolean isLink(boolean[][] read){
boolean[][] isRead = read;
int lineNum = isRead.length - 1;
int columnNum = isRead[0].length - 1;
for(int i = 0; i < lineNum + 1; i++){
for(int j = 0; j < columnNum + 1; j++){//遍历
if(i ==0 && j ==0 && isRead[1][0] == isRead[0][1] && isRead[1][0] != isRead[0][0]){//左上角
return false;
}else
if(i == lineNum && j == 0 && isRead[lineNum - 1][0] == isRead[lineNum][1] && isRead[lineNum][1] != isRead[lineNum][0]){//左下角
return false;
}else
if(i == 0 && j == columnNum && isRead[0][columnNum - 1] == isRead[1][columnNum] && isRead[1][columnNum] != isRead[0][columnNum]){//左上角
return false;
}else
if(i == lineNum && j == columnNum && isRead[lineNum][columnNum - 1] == isRead[lineNum - 1][columnNum] && isRead[lineNum - 1][columnNum] != isRead[lineNum][columnNum]){//右下角
return false;
}else
if(i ==0 && j != 0 && j != columnNum){//上边
if(isRead[0][j - 1] == isRead[1][j] == isRead[0][j + 1] && isRead[0][j + 1] != isRead[i][j]){
return false;
}
}else
if(j == 0 && i != 0 && i != lineNum){//左边
if (isRead[i - 1][0] == isRead[i+1][0] == isRead[i][1] && isRead[i][1] != isRead[i][j]){
return false;
}
}else
if(i == lineNum && j !=0 && j != columnNum){//下边
if (isRead[lineNum][j - 1] == isRead[lineNum - 1][j] == isRead[lineNum][j + 1] && isRead[lineNum][j + 1] != isRead[i][j]){
return false;
}
}else
if (j == columnNum && i != 0 && i != lineNum){//右边
if(isRead[i - 1][columnNum] == isRead[i][columnNum - 1] == isRead[i + 1][columnNum]){
return false;
}
}else if(i != 0 && i !=lineNum && j !=0 && j != columnNum){//剩余的
if(isRead[i - 1][j] == isRead[i + 1][j] == isRead[i][j - 1] == isRead[i][j + 1] && isRead[i][j + 1] != isRead[i][j]){
return false;
}
return true;
}
}
}
return false;
}
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
https://blog.csdn.net/Hokachi/article/details/128539208
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”
一个没有bug的“判断是否联通”的方法。