Я получил эту ошибку, когда запускаю этот код, и я не знаю, как решить эту проблему.
Сообщение об ошибке во время выполнения:
ПРЕДУПРЕЖДЕНИЕ. Параметр командной строки активировал диспетчер безопасности.
ПРЕДУПРЕЖДЕНИЕ. Диспетчер безопасности устарел и будет удален в будущем выпуске.
java.lang.ArrayIndexOutOfBoundsException: индекс 1 выходит за пределы длины 1
в строке 14, Solution.setZeroes
в строке 54, DriverSolution.помощник
в строке 84, Водитель.main
Последний выполненный ввод:
[[1],[0]]
Кодекс:
class Solution {
public void setZeroes(int[][] matrix) {
boolean firstColumnZero = false;
boolean firstRowZero = false;
for(int i=0;i<matrix.length;i++){
if (matrix[i][0]==0){
firstColumnZero = true;
break;
}
}
for(int i=0;i<matrix.length;i++){
if (matrix[0][i]==0){
firstRowZero = true;
break;
}
}
for(int i=0;i<matrix.length;i++){
for(int j=0;j<matrix[0].length;j++){
if (matrix[i][j]==0){
matrix[i][0]=0;
matrix[0][j]=0;
}
}
}
for(int i=1;i<matrix.length;i++){
for(int j=1;j<matrix[0].length;j++){
if (matrix[i][0]==0||matrix[0][j]==0){
matrix[i][j]=0;
}
}
}
if (firstColumnZero){
for(int i=0;i<matrix.length;i++){
matrix[i][0]=0;
}
}
if (firstRowZero){
for(int i=0;i<matrix[0].length;i++){
matrix[0][i]=0;
}
}
}
}
Результат:
Принятый
Время выполнения: 0 мс
Ваш вклад
[[1,1,1],[1,0,1],[1,1,1]]
[[0,1,2,0],[3,4,5,2],[1,3,1,5]]
Выход
[[1,0,1],[0,0,0],[1,0,1]]
[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
Ожидал
[[1,0,1],[0,0,0],[1,0,1]]
[[0,0,0,0],[0,4,5,0],[0,3,1,0]]
Эм, я не знаю, что вы имеете в виду. У вас есть есть метод main
в вашем классе Driver
. Вам нужно шоу использовать этот метод.
Этот код может быть вашей проблемой:
for ( int i = 0; i < matrix.length; i++ )
{
if ( matrix[0][i] == 0 )
{
firstRowZero = true;
break;
}
}
Вы захотите изменить оператор for на это:
for ( int i = 0; i < matrix[0].length; i++ )
«Я получил эту ошибку при запуске этого кода» — вы не показали свой метод
main
. Мы не знаем, как вы вызываете методsetZeroes
.