Выбор ответа Junior Два указателя обновлено
Перенос нулей в конец
Вопрос
Что будет в arr после выполнения?
const arr = [0, 1, 0, 3, 12];
let w = 0;
for (let r = 0; r < arr.length; r++) {
if (arr[r] !== 0) {
[arr[w], arr[r]] = [arr[r], arr[w]];
w++;
}
}
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: [1, 3, 12, 0, 0]. w указывает на позицию следующего ненулевого.
Варианты ответа
[0, 0, 1, 3, 12][1, 3, 12, 0, 0]правильный ответ[1, 0, 3, 0, 12][12, 3, 1, 0, 0]
Разбор
w указывает на позицию следующего ненулевого. Ненулевые меняются местами с arr[w], нули уезжают в конец, порядок ненулевых сохраняется: [1, 3, 12, 0, 0].
- Нули не переезжают в начало.
- Массив меняется, исходный порядок не остаётся.
- Порядок ненулевых не разворачивается.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.