Sobes.tech
Middle — Senior
33

Как найти максимальное число в массиве, которое встречается только один раз?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Чтобы найти максимальное число в массиве, которое встречается ровно один раз, можно выполнить следующие шаги:

  1. Подсчитать количество вхождений каждого числа (например, с помощью словаря/хэш-таблицы).
  2. Отфильтровать числа, которые встречаются только один раз.
  3. Найти максимальное из этих чисел.

Пример на Go:

package main

import (
    "fmt"
)

func maxUnique(nums []int) (int, bool) {
    counts := make(map[int]int)
    for _, num := range nums {
        counts[num]++
    }

    maxVal := 0
    found := false
    for num, count := range counts {
        if count == 1 {
            if !found || num > maxVal {
                maxVal = num
                found = true
            }
        }
    }
    return maxVal, found
}

func main() {
    arr := []int{2, 3, 5, 3, 7, 5, 8}
    if maxNum, ok := maxUnique(arr); ok {
        fmt.Println("Максимальное число, встречающееся один раз:", maxNum)
    } else {
        fmt.Println("Нет чисел, встречающихся ровно один раз")
    }
}

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