Публикации по теме 'two-pointers'
Алгоритмы - шаблон двоичного поиска, который может решить множество проблем
Обсуждение двоичного поиска и того, как использовать его код шаблона с двумя указателями для решения нескольких вопросов собеседования на C # для лучшего понимания структуры данных и алгоритмов.
Цель
Цель состоит в том, чтобы поделиться некоторыми краткими заметками о двоичном поиске и его реализации с использованием алгоритма рекурсии и двух указателей. Будем надеяться, что сводные заметки высокого уровня позволят вам добавить двоичный поиск в свою сумку с инструментами, не забиваясь..
Переместить нули
Различные подходы к решению Leetcode 283 в JavaScript
Сегодня мы рассмотрим распространенную проблему, которая часто возникает при работе с целочисленными массивами: как эффективно переместить все 0 в конец, сохранив порядок ненулевых элементов. Хотя поначалу это может показаться простой задачей, эта проблема требует тщательного изучения методов манипулирования массивами и стратегий оптимизации. К концу этой статьи вы будете лучше понимать работу с массивами в целом.
Постановка..
Шаблон с двумя указателями: обязательный навык для каждого программиста
Пошаговое руководство для начинающих Python
В задачах программирования вам часто может понадобиться найти пары элементов в массиве, которые удовлетворяют определенному условию . Например, вам может понадобиться найти в массиве два числа, которые в сумме дают целевую сумму. Шаблон двух указателей может использоваться для решения таких проблем более эффективно , предоставляя более быстрое и оптимизированное решение по сравнению с подходом грубой силы .
Пошаговое руководство по..
Почти палиндром
Нам дана задача :
Учитывая строку s , вернуть true если s может быть палиндромом после удаления из него не более одного символа .
Как это решить?
Как правило, когда мы имеем дело с палиндромами (слова, которые пишутся одинаково как вперед, так и назад), наиболее оптимальным решением было бы установить два указателя, один на left , а другой на right , сводя их вместе, пока мы не заметим что значения left и right не равны.
Но что, если у нас есть один символ в..
LeetCode 287. Найдите повторяющийся номер
Дан массив целых чисел nums , содержащий n + 1 целых чисел, где каждое целое число находится в диапазоне [1, n] включительно.
В nums есть только один повторяющийся номер , верните этот повторяющийся номер .
Вы должны решить проблему без изменения массива nums и использовать только постоянное дополнительное пространство.
Input: nums = [3,1,3,4,2]
Output: 3
Алгоритмы: 2 указателя, удаление N-го узла из связанного списка
Проблема
Учитывая head связанного списка, удалите узел nth из конца списка и верните его заголовок.
Пример 1:
Input: head = [1,2,3,4,5], n = 2
Output: [1,2,3,5]
Пример 2:
Input: head = [1], n = 1
Output: []
Пример 3:
Input: head = [1,2], n = 1
Output: [1]
Просто поясню: тип структуры входных и выходных данных – это связанный список, а не массив.
Пример 3 ввода: {val: 1, next: {val: 2, next: null}} Пример 3 вывода: {val: 1, next: null}..
Техника двух указателей
В этой второй части моей серии Алгоритмы и структуры данных я объясняю очень распространенный метод, используемый в алгоритмах поиска: метод двух указателей. Первая часть, Проблемы со скользящим окном в JavaScript , не является предварительным условием для понимания материала этой статьи, но она охватывает другой распространенный шаблон кодирования, полезный для вопросов на собеседовании по разработке программного обеспечения, и его можно прочитать здесь .
Почему два указателя?..