O(n)
Правильно ли оцениваю свое решение за O(n)?
func longestConsecutive(nums []int) int {
max := 0
cache := make(map[int]int)
for _, num := range nums {
cache[num] = 0
}
for key := range cache {
i := 1
_, ok := cache[key-i]
for ok {
cache[key]++
_, ok = cache[key-i]
i++
}
if max < cache[key] {
max = cache[key]
}
}
return max
}
В чем задача-то?
На первый взгляд смотрится как О( (N^2)/2 ), что приводится к О( N^2 ) Просто потому, что вложенный цикл теоретически может перебрать все ключи мапы
Обсуждают сегодня