Я г-н Бутылка, 31 марта я запустил деятельность «Расширенный алгоритм переднего плана», чтобы построить полную структуру данных и систему алгоритмов от 0 до 1. Прошла неделя, и за эту неделю мы сделали:
Один, две серии статей:
- Интерфейсный расширенный алгоритм 1: как проанализировать и подсчитать эффективность выполнения и потребление ресурсов алгоритма?
- Передовой расширенный алгоритм 2: просмотр массива JavaScript из исходного кода Chrome V8 (с вопросами интервью Tencent)
Два, четыре вопроса алгоритма:
Вопрос 1: Графический литкод: объединить два отсортированных массива
дает вам два отсортированных целочисленных массиваnums1
а также nums2
, ты будешьnums2
Слияние доnums1
в, сделатьnum1
становится упорядоченным массивом.
проиллюстрировать:
инициализацияnums1
а такжеnums2
Количество элементовm
а такжеn
.
вы можете предположитьnums1
Места достаточно (размер пространства больше или равенm + n
) сохранитьnums2
элементы в .
Пример:
输入:
nums1 = [1,2,3,0,0,0], m = 3
nums2 = [2,5,6], n = 3
输出: [1,2,2,3,5,6]
Отвечать: GitHub.com/sister/JA…
Второй вопрос: Вопрос алгоритма Tencent: выравнивание массива, дедупликация, сортировка
Известны следующие массивы: var arr = [[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]] ] ] ], 10];
Напишите программу для выравнивания массива и удаления повторяющейся части данных и, наконец, получения восходящего и неповторяющегося массива.
Отвечать: GitHub.com/sister/JA…
Вопрос 3: Байт и литкод: сумма двух чисел
задан массив целых чиселnums
и целевое значениеtarget
, пожалуйста, найдите тот, чья сумма является целевым значением в массиведвацелые числа и возвращают их индексы массива.
Можно предположить, что для каждого входа будет только один ответ. Однако вы не можете повторно использовать одни и те же элементы в этом массиве.
Пример:
给定 nums = [2, 7, 11, 15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
Отвечать: GitHub.com/sister/JA…
Вопрос 4: leetcode: Имея два массива, напишите функцию для вычисления их пересечения
Имея два массива, напишите функцию для вычисления их пересечения.
Пример 1:
输入: nums1 = [1,2,2,1], nums2 = [2,2]
输出: [2]
Пример 2:
输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出: [9,4]
проиллюстрировать:
Каждый элемент в выходных данных должен быть уникальным. Мы можем игнорировать порядок вывода результатов.
Сегодня новая тема, добро пожаловатьGitHub.com/sister/JA…Ответьте, ответ будет дан мистеру Бутылке завтра
👏👏👏👏👏
3. Зачем изучать алгоритмы?
Нужно ли вам изучать алгоритмы на переднем конце? Должен учиться, и должен учиться усердно⛽️. Сейчас я иду на большую фабрику на собеседование.Структуры данных и алгоритмы уже стандартны.Если нет, то в принципе пропущу большую фабрику.
Что касается внешнего интерфейса, хотя мы редко пишем алгоритмы в обычной разработке, когда нам нужно углубиться в интерфейсные фреймворки, языки разработки и библиотеки с открытым исходным кодом, понимание алгоритмов значительно улучшит нашу способность читать исходный код. Например:
- Алгоритм diff виртуального дома сделал некоторые соглашения, а затем уменьшил временную сложность исходного O (n ^ 3 ^) до O (n).Основной принцип - поиск в глубину дерева
- Babel Это знание синтаксического анализатора некоторых принципов компиляции для создания абстрактных синтаксических деревьев, а затем преобразования абстрактных синтаксических деревьев для создания файлов.
- История браузера, нижний слой можно реализовать с помощью стека
- Оптимизация встряхивания деревьев в WebPack
- Стеки вызовов, очереди сообщений и многое другое в v8
Они используют множество алгоритмов, и если вы их поймете, вы сможете лучше понять их производительность, более эффективно решать проблемы, улучшить качество нашего кода и видение мышления, перейти на более высокий уровень и заработать больше денег 💰💰💰.
Поэтому изучение алгоритмов является обязательным для каждого продвинутого фронтенда! ⛽️⛽️⛽️
Сейчас на рынке много алгоритмических данных, но очень мало алгоритмов для фронтенда, поэтому здесь я собрал серию структур данных и алгоритмов, подходящих для фронтенда, в надежде помочь вам построить полная структура данных от 0 до 1. и система алгоритмов.
По оценкам, в этой серии более 40 статей, и первые две статьи были обновлены. Если вы хотите узнать больше и быстрее из этой серии, вы можете подписаться на публичный аккаунт «Front-end Bottle Master» и на мой Github (GitHub.com/sister/JA…),欢迎在 issus 上提出遇到的算法题,瓶子君会不定期解答。 😊
4. Познакомьтесь с большим количеством фронтенд-даосов и вместе продвигайте фронтенд-разработку
Первый этап тренировочного лагеря фронтенд-алгоритма открыт бесплатно🎉🎉🎉, он бесплатный!
Здесь вы можете продвигать интерфейсные алгоритмы с друзьями-единомышленниками (500+) и создавать полную структуру данных и систему алгоритмов от 0 до 1.
Здесь мистер Боттл не только представляет алгоритм, но и объединяет алгоритм с различными полями интерфейса, включая браузеры, HTTP, V8, React, исходный код Vue и т. д.
Здесь вы можете каждый день изучать большую задачу по заводскому алгоритму (Ali, Tencent, Baidu, Byte и т. д.) или литкоду, а мистер Боттл ответит на него на следующий день!
Больше преимуществ ждут вас, чтобы разблокировать🔓🔓🔓!
Отсканируйте код, чтобы присоединиться к [Группе обмена алгоритмами переднего плана],Если срок действия QR-кода истек, вы можете ответить на «алгоритм» в официальном аккаунте «Front-end Bottle Gentleman», чтобы немедленно присоединиться.😊😊😊
Добро пожаловать, чтобы сосредоточиться на «Front-end Bottle Master», там есть не только алгоритмы, но и различные передовые статьи! 👍👍👍
В конце концов, жизнь – это не только работа, учеба, но и поэзия, и дальние страны.Совершенствуя себя, можно хорошо наслаждаться жизнью.