DEV Community

Aura Philomena
Aura Philomena

Posted on

💡(💎|🧱)🗝️⚙️От Нуба до Профи C# в мире Minecraft !🤔➡️🚪🗺️ (Remove_Element_part2) Код в Свете Факела

Глава 3. Свиток Угрюмого шахтера: Код и Первые ответы

Выбравшись из темной шахты, Серый первым делом вернулся в свою уютную хижину. Внутри горел яркий огонь в камине, отбрасывая причудливые тени на стены. Ему не терпелось узнать, что же скрывается в этом таинственном свитке. Сердце его билось учащенно, как будто в предвкушении великого открытия.

Сев за свой верстак, Сталкер развернул пергамент. Написано было четко и аккуратно, хоть и немного старомодно. "Явно не руны Древних… Это код!", - прошептал он. Символы оказались ему непонятными, но что-то в них все-таки казалось знакомым. Просмотрев свиток еще раз, он увидел, что после основной части текста идут строчки, похожие на пошаговую инструкцию с заголовками и нумерованными списками.

Наш герой, вооружившись свитком, приступил к изучению содержимого. Насупившись как Угрюмый, он внимательно вчитывался, стараясь понять каждую строку... и наконец... "Погоди-ка, похоже, здесь не только код, а еще и обьясняется алгоритм!". Его надежда вновь вспыхнула.

Глава 4: Алмазный алгоритм.

Представь, что твой сундук – это длинный поезд int[] nums, массив ячеек-вагонов с ресурсами. Наша задача – расставить эти ячейки nums[k] в таком порядке, чтобы в первых были только алмазы, а в последних – булыжники.

Вот как мы это делаем:

  1. Находим булыжник: Начинаем проверять ячейки поезда с самого начала. Если в ячейке нашелся булыжник – переходим к шагу 2. А если нет, и там алмаз или что-то еще полезное, то заглядываем в ячейку под следующим номером и далее в следующие до тех пор, пока не найдем булыжник.

  2. Меняем местами: Как только в вагоне со стороны начала нашелся булыжник, смотрим в конец вагонов, где вагоны еще не проверяли. Меняем местами вагон с булыжником с начала и вагон с конца (который мы еще не проверили). Получается, что булыжник уехал в конец поезда, а что-то другое приехало на его место.

  3. Забываем про конец end: Теперь мы считаем, что последний вагон (куда мы только что переложили ненужный булыжник) больше не нужно проверять, и в следующий раз менять мы будем местами не его, а следующий слева от него вагон.

  4. Повторяем: Повторяем шаги 1-3, пока не дойдем до границы – до того места, где заканчиваются проверенные вагоны и начинаются те, которые мы еще не смотрели.

  5. При этом по мере выполнения вышеперечисленных действий, мы подсчитываем количество алмазов 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;
    }
}

Enter fullscreen mode Exit fullscreen mode

"Все это хорошо, но как же именно эта тарабарщина превращает булыжник в телепорт в конец сундука?" - вслух задался вопросом Серый. Его знания заканчивались там, где начиналось настоящее программирование. Что-то говорило ему, что для создания инструмента, который позволит претворить код в реальность, потребуется очень много времени и опыта, которым он пока не обладал.

Тут до Сталкера дошло: он не сможет разобраться с этим кодом в одиночку. Нужен кто-то, кто не просто видел код, а понимал его, чувствовал его, кто мог заставить эти строчки плясать в нужном ритме.

Профессор! Это имя эхом отозвалось в его голове. Только он сможет разгадать тайну этого свитка и научить Серого управлять этой магией.

Решение было принято. Дальше тянуть нельзя. Пора отправляться в путь к Профессору, где его наверняка ждут новые знания и новые возможности.

На скорую руку собрав дорожный рюкзак, закинув за спину верную кирку, Сталкер накинул плащ и, бросив последний взгляд на уютный огонь в камине, шагнул за порог хижины. Впереди его ждал путь к знаниям, и он был готов ко всем испытаниям, которые могли встретиться на его пути. Ведь в его руках был не просто свиток, а ключ к новому миру, миру кода и безграничных возможностей! И он во что бы то ни стало собирался им воспользоваться.

Продолжение следует...

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay