282просмотров
7.5%от подписчиков
17 марта 2026 г.
statsScore: 310
Задача: 744. Find Smallest Letter Greater Than Target
Сложность: easy Нам дан массив символов letters, отсортированный в неубывающем порядке, и символ target. В массиве letters есть как минимум два разных символа. Возвращается наименьший символ в letters, который лексикографически больше target. Если такого символа не существует, возвращается первый символ в буквах. Пример:
Input: letters = ["c","f","j"], target = "a"
Output: "c" 👨💻 Алгоритм: 1⃣Использовать бинарный поиск для нахождения позиции первого символа в letters, который лексикографически больше target. 2⃣Если найденный символ существует, вернуть его. 3⃣Если такого символа не существует, вернуть первый символ в letters. 😎 Решение:
package main func nextGreatestLetter(letters []byte, target byte) byte { left, right := 0, len(letters)-1 for left <= right { mid := (left + right) / 2 if letters[mid] > target { right = mid - 1 } else { left = mid + 1 } } return letters[left % len(letters)]
} Ставь 👍 и забирай 📚 Базу знаний