Решаем задачу с leetcode на #Golang



Решаем задачу с leetcode на #Golang

Решаем задачу с leetcode на #Golang

Задача: Найти два числа в отсортированном массиве, сумма которых равна целевому значению.

Описание: Дан отсортированный массив целых чисел nums и целевое значение target. Ваша задача – найти два числа в массиве, сумма которых равна target, и вернуть их индексы в виде массива.

Пример:
Ввод: nums = [2, 7, 11, 15], target =22
Вывод: [1, 3]

Решение:
Мы можем использовать алгоритм двух указателей для решения этой задачи. У нас будет указатель “left”, указывающий на первый элемент массива, и указатель “right”, указывающий на последний элемент массива.

Мы будем сравнивать сумму nums[left] + nums[right] с целевым значением target. Если сумма равна target, мы вернем индексы left и right. Если сумма меньше target, мы увеличим left, чтобы увеличить сумму. Если сумма больше target, мы уменьшим right, чтобы уменьшить сумму.

Мы продолжим этот процесс, пока указатели не встретятся (левый указатель не станет больше или равен правому). Если мы не найдем два числа сумма которых равна target, мы вернем пустой массив.

В коде на видео мы объявляем функцию twoSum, которая принимает отсортированный массив чисел nums и целевое значение target. Функция ищет два числа в массиве, сумма которых равна target, и возвращает их индексы в виде массива.

Затем в функции main мы создаем массив nums и переменную target, вызываем функцию twoSum с этими значениями и выводим результат на экран.

При выполнении кода, он выведет массив [1, 3], что означает, что числа в индексах 7 и 15 массива [2, 7, 11, 15] дают сумму, равную 22.