Вы прошли вопрос по алгоритму собеседования? Изучение вопросов по алгоритмам занимает слишком много времени? Не твоя проблема! До этого ни один метод алгоритмического обучения не мог быть таким простым и эффективным. Чтобы стать мастером алгоритмов, нужно всего три шага: первый шаг — прочитать вопрос; второй шаг — воспроизвести анимацию, обратиться к субтитрам и понять идеи и коды; Третий шаг — прочитать, проанализировать и обобщить;
Приложение для создания диаграмм анимации алгоритмов основано на личном опыте многих программистов, которым часто приходится пересматривать алгоритмы всякий раз, когда они меняют работу. Процесс пересмотра этих алгоритмов обычно включает в себя просмотр различных онлайн-решений, многие из которых включают анимированные визуальные эффекты или схематические диаграммы. Эти формы представления более эффективны и быстрее воспринимаются, чем сам текст. Однако стали очевидны определенные ограничения существующих ресурсов, в том числе отсутствие интерактивности в анимации, невозможность изменения данных во время обучения и проблемы, связанные с мобильной доступностью.
Вдохновленный желанием улучшить процесс обучения, разработчик решил создать в приложении 70 различных анимаций. Основная цель этого приложения — служить инструментом обучения, который помогает пользователям быстро понять концепции алгоритмов и код. Хотя приложение предоставляет визуальный и интерактивный опыт обучения, оно не позволяет пользователям отправлять или выполнять код; ввод кода на компьютере по-прежнему необходим для полноценного обучения.
При организации содержимого приложения разработчик решил не упорядочивать вопросы алгоритма по идентификационным номерам LeetCode. Вместо этого они разделили вопросы на три основные категории: связанные списки, строки, массивы и двоичные деревья; возврат с возвратом, жадные алгоритмы, динамическое программирование и принцип «разделяй и властвуй»; вместе с отдельным разделом для сортировки. Каждая категория далее разделена по сложности: легкая, средняя и сложная. Это позволяет пользователям последовательно концентрироваться на определенных областях знаний, одновременно поощряя тщательное изучение теоретических концепций.
Приложение также отражает собственный прошлый опыт обучения разработчика, в частности проблемы, с которыми он столкнулся при работе с алгоритмами сортировки. Поскольку сортировка изначально воспринималась как сложная тема, для новичков была разработана специальная классификация, чтобы облегчить ее лучшее понимание. Этот структурированный подход призван помочь пользователям систематически ориентироваться в сложных темах в соответствии с традиционными образовательными структурами.
Для улучшения взаимодействия между анимацией и кодом в приложении реализовано несколько продуманных функций. Одним из ключевых аспектов является функция подсветки кода, которая синхронизирует анимацию с выполнением кода, выделяя каждую строку кода по мере выполнения соответствующей анимации. Кроме того, в дополнение к визуальным элементам включена функция субтитров, предоставляющая краткие пояснения на каждом этапе анимации. Приложение также включает в себя функции воспроизведения и сброса для каждого алгоритма, что позволяет пользователям рандомизировать тестовые случаи с помощью кнопки сброса, что еще больше упрощает процесс обучения и повышает вовлеченность пользователей.
Зачем создавать приложение с анимацией алгоритма? ?
Как и многим программистам, мне приходится уделять много времени обновлению алгоритма каждый раз, когда я меняю работу. Очень хорошо, в процессе зачистки вопросов надо сначала прочитать решение. Я также читаю много решений проблем от больших ребят в Интернете, и особенно мне нравится читать анализ алгоритмов с движущимися картинками или схематическими диаграммами, что быстрее, чем чтение текста. В процессе также было обнаружено несколько проблем, таких как: анимация не интерактивна и ее нельзя поставить на паузу; данные мертвы и не могут быть изменены; неудобно учиться на мобильном телефоне и т. д.
В начале я видел несколько хороших анимаций, и у меня несколько раз возникало сильное желание реализовать их в приложении с нативным кодом. На этот раз я наконец решился и сделал 70 анимаций за один раз.
Я понимаю, что позиционирование этого приложения — это инструмент, который может помочь нам быстро понять идеи и коды алгоритмов, улучшить память и повысить эффективность обучения. Но здесь нельзя отправить, нельзя выполнить код, а код еще нужно набирать на компьютере, чтобы было удобнее.
Почему он не расположен в порядке литкода число?
В настоящее время вопросы алгоритма разделены на три основных блока:
- связный список, строка, массив, двоичное дерево;
- возврат, жадное, динамическое программирование, разделяй и властвуй;
- Сортировать и классифицировать отдельно.
В каждой категории сложность делится на легкую, среднюю и сложную.
Сначала классифицируйте структуры данных и алгоритмы отдельно и учитесь в соответствии с очками знаний. Например, вы можете сосредоточиться на изучении двоичных древовидных структур или алгоритмов динамического программирования, чтобы концентрированное обучение с насыщением могло помочь повысить эффективность обучения. Сначала идет структура данных, затем следует алгоритм, который также расположен в том порядке, в котором мы изучаем теоретические знания.
С точки зрения алгоритмов в настоящее время организовано четыре типа: с возвратом, жадное программирование, динамическое программирование и разделение и -conquer.
Когда я много лет назад изучал структуры данных и алгоритмы, я впервые столкнулся с различными алгоритмами сортировки. В то время я почувствовал, что сортировка слишком сложна, и это меня очень впечатлило, поэтому я сделал отдельную классификацию сортировки для новичков.
Думаю, как совместить анимацию и код и другие интерактивные вопросы
- В процессе самостоятельного изучения алгоритмов я часто понимаю идеи, но не могу понять коды, а многие коды в текстовых пояснениях не имеют комментариев. Видеть это – большая головная боль. Поэтому, когда речь идет о взаимодействии приложения, функция подсветки кода разработана специально, а это означает, что каждая строка кода будет подсвечиваться по мере продвижения анимации. Таким образом, анимация выполняется, код подсвечивается и выглядит круто.
- Хотя анимацию легко понять, она все же нуждается в некоторых кратких пояснениях, поэтому функция «субтитры» расположена под анимацией. Каждый раз при выполнении соответствующего шага будет отображаться соответствующее объяснение.
- Воспроизведение и сброс анимации, каждая страница алгоритма имеет функцию воспроизведения, как подготовить тестовые примеры? Для упрощения концепции тест-кейсов разработана кнопка «сброс», что означает, что тест-кейсы являются случайными. Если вы хотите изменить набор данных, просто нажмите «Сброс».