← Усі приклади

Другий за величиною

Go Алгоритми

два максимуми

Блок-схема за ДСТУ

ТакНіТакНіПочатокВвід afirst = a[0]second = a[0]x ∈ ax > firstsecond = firstfirst = xx > second && x < firstsecond = xПовернути secondКінецьРисунок 1 — secondLargest

Вихідний код

func secondLargest(a []int) int {
    first := a[0]
    second := a[0]
    for _, x := range a {
        if x > first {
            second = first
            first = x
        } else if x > second && x < first {
            second = x
        }
    }
    return second
}