は私が5×5の次の行列は2D配列の数値の対角を見つける?
{ , , T , , }
{ , T , T , , }
{ , , T , , }
{ , T, , , }
{T, , , , }
を言うことができますしている場合は、私は、マトリックスのcharは別のものに対角であるかどうかを確認する必要があり、私は、以下の方法でそれらをチェックしています
public boolean isDiagonal(int row,int col){
if (row == board.length-1 && board[row-1][col+1] == 'T') {
return true;
} else if (col == board.length -1 && board[row+1][col-1] == 'T') {
return true;
} else if (board[row][col] == 'T' && board[row+1][col+1] == 'T' ||
board[row][col] == 'T' && board[row-1][col-1] == 'T') {
return true;
} else if (board[row][col] == 'T' && board[row-1][col+1] == 'T' ||
board[row][col] == 'T' && board[row+1][col-1] == 'T') {
return true;
}
return false;
}
char Tはボード上でランダムに割り当てられています。私はそれに斜めに別のTが存在する場合、char Tを置いている間にチェックする必要があります。
方法は、行と列と文字Tはボード上に存在するかどうかのチェックを受け取り、それが別のT.
に対して斜めである場合であれば、行= 0、COL = 4又は行= 1、COL = 5それは失敗し、配列を範囲外に投げるだろう。
行列の任意の数に対角を取得し、エッジのケースを避ける効率的な方法はありますか?
PS:私は要素を取得するメソッドを作成したJava
あなたのユーザー名はかなり適切です。すべての質問に対して新しいアカウントを作成しますか? – Gendarme
@Gendarmeいいえ、なぜでしょうか? :) – indexOutOfBounds
あなたのコードを理解できません。なぜ「T」ですか?なぜ 'row'は' board.length-1'と同じになる必要がありますか? – Gendarme