[Набор в школу] Техническое интервью в Интернете Руководство по вопросам LeetCode Brush

алгоритм структура данных
[Набор в школу] Техническое интервью в Интернете Руководство по вопросам LeetCode Brush

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

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

Будь то фактор так называемой «холодной зимы» Интернета или растущие потребности предприятий в наборе персонала, они выдвинули более высокие требования к структурам данных и алгоритмам программистов.

  • Зачем замазывать вопрос?
  • Что означает чистка?
  • Какие навыки у вас есть при написании вопросов?

1. Почему вы хотите почистить вопрос?

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

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

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

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

Следующие три небольшие части относятся к блогерам Zhihu.Edward ShiоКакие основы мне нужны, чтобы почистить leetcode?Ответ (с сокращением):

1.1 Структура данных

Массив, связанный список, стек, очередь, дерево, граф, куча, хеш-таблица, дерево сегментов, массив дерева, поиск объединения, дерево словаря и т. д.

1.2 Алгоритмы

Алгоритм сортировки (восемь видов), DFS, BFS, бинарный поиск, поиск с возвратом, разделяй и властвуй, рекурсия, динамическое программирование, топологическая сортировка, жадные и другие алгоритмы (не изучаемые в школе): скользящее окно, алгоритм строки сканирования (графика), хранение Алгоритм пула, заливка заливкой (графика) и т. д.

Более сложные на самом деле включают многое: КМП, гужевые повозки и т.д.

1.3 Другие знания

Битовые операции (Bit), реализация базовой структуры данных (LinkedList Deque и другие реализации), некоторые дизайнерские идеи (Design), математические знания (Math), подстановочные знаки, escape-символы, поиск в памяти и т. д. Если вы используете Java, по сути, другие языки такие же, Java также имеет некоторые часто используемые структуры данных: TreeMap, TreeSet, PriorityQueue, Deque и т. д.

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

2. Как писать вопросы?

Как чистить? Сколько кистей в день? Какой уровень сложности? Кисти в каком порядке?

Такая проблема очень распространена, мое предложение:

2.1 Вопросы по кисти в соответствии с темами

Например, связанные списки, массивы, динамическое программирование и т. д., поэтому

2.2 Выделите фиксированное количество времени

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

Отказ от менее важных вещей, таких как развлекательные мероприятия, установление периода времени каждый день и выполнение запланированных дел, намного эффективнее, чем некоторые философии экономии времени.

2.3 Перейти к ответу, если вы не можете его написать

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

Предпосылкой прямого взгляда на ответ является частое его рассмотрение, чтобы увидеть, есть ли какая-либо идея для предыдущего вопроса.

Когда вы чувствуете, что ваши идеи усложняются при написании вопроса, вы можете также взять ручку и бумагу, чтобы сделать больше жестов.

2.4 Постоянно снижайте сложность времени и пространства

Многие вопросы имеют много разных решений, постарайтесь найти лучшее решение для каждого вопроса, если вы не можете понять его какое-то время, вы можете отметить его и просмотреть в следующий раз.

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

3. Какие советы по написанию вопросов?

3.1 Самый важный «навык»: настойчивость

Мао Цзэдун как-то пересмотрел двустишие о самосовершенствовании: долголетие у тебя, зачем тебе просыпаться в три и в пять спать; самое бесполезное, боюсь, что будет подвергаться холоду по десять дней в день. Настойчивость в чем бы то ни было важнее всего, и то же самое и с чистящими вопросами.Как бы ни были богаты планы и теории, если нет времени на поддержку, будет трудно их хорошо реализовать.

3.2 Пишите онлайн, избегайте использования ide

Непосредственное написание может тренировать больше способностей.Часть этого заключается в способности кодировать, а другая часть – в стиле кода.Хороший стиль кода сделает людей более склонными к совместной работе. Например, если вы привыкли использовать Java, вы можете обратиться кСтандарты кодирования, и так далее.

Ссылаться на

вы также можете увидеть