private boolean compressRow(int[] row) {
int[] newRow = new int[row.length];
int newCount = 0;
int count = 0;
boolean res = false;
for (int element:row){
if (element>0) {
newRow[newCount] = row[count];
newCount++;
count++;
} else {
count++;
}
}
for (int i=0;i<row.length;i++){
if (row[i]!=newRow[i]) res = true;
//row[i] = newRow[i];
}
row = newRow;
return res;
}
Если же сделать присваивание в цикле. то решение принимается. Специально продебажил несколько вариантов, они корректно присваивают row новое значение.Александр Дорофеев
41 уровень
Не принимает рабочий вариант
Решен
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Roman Java Developer Expert
17 декабря 2018, 11:52
Не знаю как ты там дебажил, но если добавить вот такой main и проверить работу метода compressRow...
+2
Александр ДорофеевBackend Developer в Ай-ТекоExpert
25 декабря 2018, 07:17
Посмотрел, потестил.
Параметром передается строка матрицы gameField как массив символов int[] row.
В случае, если присваивать значения переменной row поэлементно,
то gameField изменяется, а если сразу:
то gameField не изменяется.
А почему вообще так происходит?
0