Свое обучение я начала с базовых методов, которые помогают решать задачи на LeetCode. Сегодня хочу поделиться одним из них — методом двух указателей.
🔍 Что такое метод двух указателей?
Метод двух указателей — это техника, которая используется для решения задач с массивами или строками. В этом методе используются два указателя (индекса), которые перемещаются по массиву или строке по заданному правилу
Чаще всего:
➖ Один указатель начинается с начала массива (
left).➖ Другой — с конца массива (
right). ➖ Они движутся навстречу друг другу, пока не встретятся.
📚 Пример задачи: Two Sum II
Разберем на примере задачи с leetCode 167. Two Sum II - Input Array Is Sorted
Описание
Дан отсортированный массив целых чисел numbers и целое число target. Необходимо найти индексы двух чисел, которые в сумме дают target.
Индексы должны быть на 1 больше, чем реальные индексы массива (по условию задачи).
Алгоритм работы:
1. Мы используем два указателя: left (начало массива) и right (конец массива).
2. На каждом шаге вычисляем сумму элементов на этих указателях.
3. Если сумма равна target, возвращаем индексы.
4. Если сумма меньше target, двигаем left вправо (увеличиваем сумму).
5. Если сумма больше target, двигаем right влево (уменьшаем сумму).
Код
var twoSum = function(nums, target) {
let left = 0;
let right = nums.length - 1;
while (left < right)
{
const sum = nums[left] + nums[right];
if (sum == target)
return [left + 1, right + 1];
if (sum > target)
right--;
if (sum < target)
left++;
}
};❄️ Задачи для практики:
125. Valid Palindrome
26. Remove Duplicates from Sorted Array
11. Container With Most Water
#JavaScript #Алгоритмы