▌ Глава 3. Свиток Угрюмого шахтера: Код и Первые ответы
Выбравшись из темной шахты, Серый первым делом вернулся в свою уютную хижину. Внутри горел яркий огонь в камине, отбрасывая причудливые тени на стены. Ему не терпелось узнать, что же скрывается в этом таинственном свитке. Сердце его билось учащенно, как будто в предвкушении великого открытия.
Сев за свой верстак, Сталкер развернул пергамент. Написано было четко и аккуратно, хоть и немного старомодно. "Явно не руны Древних… Это код!", - прошептал он. Символы оказались ему непонятными, но что-то в них все-таки казалось знакомым. Просмотрев свиток еще раз, он увидел, что после основной части текста идут строчки, похожие на пошаговую инструкцию с заголовками и нумерованными списками.
Наш герой, вооружившись свитком, приступил к изучению содержимого. Насупившись как Угрюмый, он внимательно вчитывался, стараясь понять каждую строку... и наконец... "Погоди-ка, похоже, здесь не только код, а еще и обьясняется алгоритм!". Его надежда вновь вспыхнула.
▌ Глава 4: Алмазный алгоритм.
Представь, что твой сундук – это длинный поезд int[] nums, массив ячеек-вагонов с ресурсами. Наша задача – расставить эти ячейки nums[k] в таком порядке, чтобы в первых были только алмазы, а в последних – булыжники.
Вот как мы это делаем:
Находим булыжник: Начинаем проверять ячейки поезда с самого начала. Если в ячейке нашелся булыжник – переходим к шагу 2. А если нет, и там алмаз или что-то еще полезное, то заглядываем в ячейку под следующим номером и далее в следующие до тех пор, пока не найдем булыжник.
Меняем местами: Как только в вагоне со стороны начала нашелся булыжник, смотрим в конец вагонов, где вагоны еще не проверяли. Меняем местами вагон с булыжником с начала и вагон с конца (который мы еще не проверили). Получается, что булыжник уехал в конец поезда, а что-то другое приехало на его место.
Забываем про конец end: Теперь мы считаем, что последний вагон (куда мы только что переложили ненужный булыжник) больше не нужно проверять, и в следующий раз менять мы будем местами не его, а следующий слева от него вагон.
Повторяем: Повторяем шаги 1-3, пока не дойдем до границы – до того места, где заканчиваются проверенные вагоны и начинаются те, которые мы еще не смотрели.
При этом по мере выполнения вышеперечисленных действий, мы подсчитываем количество алмазов k
Вот и все! В итоге, в начале нашего поезда будут только алмазы, а в конце – булыжник!
▌ Глава 5: Танец Кода и Вызов Программисту
Сталкер откинулся на спинку своего верстака, потирая уставшие глаза. "Вагоны... поезд... булыжник в конце... Вроде бы все понятно, но как заставить этот код работать?" - пробормотал он. Аналогии помогали, но до конца уловить связь между "вагонами" и этими магическими символами ему пока не удавалось.
Ему казалось, что перед ним не просто код сортировки сундука, а ключ к управлению реальностью Minecraft, способный подчинить себе сам мир. Вот бы заставить этот код работать! Вот бы увидеть, как сундук сам собой сортируется, алмазы сверкают в начале, а булыжник пылится в конце! "Уффф, было бы здорово", - мечтательно произнес Серый.
Он еще раз взглянул на свиток, и его взгляд зацепился за этот непонятный код:
public class Solution {
public int RemoveElement(int[] nums, int val) {
int end = nums.Length - 1;
int k = 0;
while (k <= end)
{
if (nums[k] == val)
{
nums[k] = nums[end];
end--;
}
else
{
k++;
}
}
return k;
}
}
"Все это хорошо, но как же именно эта тарабарщина превращает булыжник в телепорт в конец сундука?" - вслух задался вопросом Серый. Его знания заканчивались там, где начиналось настоящее программирование. Что-то говорило ему, что для создания инструмента, который позволит претворить код в реальность, потребуется очень много времени и опыта, которым он пока не обладал.
Тут до Сталкера дошло: он не сможет разобраться с этим кодом в одиночку. Нужен кто-то, кто не просто видел код, а понимал его, чувствовал его, кто мог заставить эти строчки плясать в нужном ритме.
Профессор! Это имя эхом отозвалось в его голове. Только он сможет разгадать тайну этого свитка и научить Серого управлять этой магией.
Решение было принято. Дальше тянуть нельзя. Пора отправляться в путь к Профессору, где его наверняка ждут новые знания и новые возможности.
На скорую руку собрав дорожный рюкзак, закинув за спину верную кирку, Сталкер накинул плащ и, бросив последний взгляд на уютный огонь в камине, шагнул за порог хижины. Впереди его ждал путь к знаниям, и он был готов ко всем испытаниям, которые могли встретиться на его пути. Ведь в его руках был не просто свиток, а ключ к новому миру, миру кода и безграничных возможностей! И он во что бы то ни стало собирался им воспользоваться.
Продолжение следует...
Top comments (0)