https://leetcode.com/problems/find-numbers-with-even-number-of-digits/ Easy

Условие

Дан массив nums, содержащий целые числа. Необходимо вернуть количество чисел, содержащих чётное количество цифр.

Примеры

Input: nums = [12, 345, 2, 6, 7896] Output: 2 Explanation: 12 и 7896 содержат чётное число цифр.

Input: nums = [555, 901, 482, 1771] Output: 1 Explanation: Только 1771 содержит чётное число цифр.

Решение

fun findNumbers(nums: IntArray): Int {
    var count = 0
    for (num in nums) {
        var digits = 0
        var n = num
        while (n > 0) {
            digits += 1
            n /= 10
        }
        if (digits % 2 == 0) count += 1 // Увеличиваем счётчик, если число цифр чётное
    }
    return count
}

Временная сложность

O(n * log₁₀m), где n — количество чисел, m — максимальное число в массиве.

Пространственная сложность

O(1), используется постоянное количество памяти.