Реализуйте функцию, которая принимает слайс целых чисел и возвращает длину самой длинной подряд идущей последовательности одинаковых чисел.

go func longestEqualSequence(nums []int) int { if len(nums) == 0 { return 0 }

Короткий ответ

Что ответить на собеседовании

go func longestEqualSequence(nums []int) int { if len(nums) == 0 { return 0 }

Подробный разбор

Ответ с пояснениями

Условие

Реализуйте функцию, которая принимает слайс целых чисел и возвращает длину самой длинной подряд идущей последовательности одинаковых чисел.

Последовательность считается подряд идущей, если элементы идут рядом в исходном слайсе.

Ответ

go func longestEqualSequence(nums []int) int { if len(nums) == 0 { return 0 }

maxLen := 1
currentLen := 1

for i := 1; i < len(nums); i++ {
    if nums[i] == nums[i-1] {
        currentLen++
        if currentLen > maxLen {
            maxLen = currentLen
        }
    } else {
        currentLen = 1
    }
}

return maxLen

}


Функция итерируется по слайсу, сравнивая текущий элемент с предыдущим. Если они равны, увеличивает счётчик текущей последовательности. Если нет — сбрасывает счётчик. В конце возвращает максимальную длину подряд идущей последовательности одинаковых чисел.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее