Дети с наибольшим количеством конфет
Описание задачи #
Есть n детей с конфетами.
Вам дан целочисленный массив candies, где candies[i] представляет количество конфет, которые есть у i-го ребенка,
и целое число extraCandies, обозначающее количество дополнительных конфет, которые у вас есть.
Верните массив result длины n, где result[i] имеет значение true, если после предоставления i-му ребенку всех
дополнительных конфет у него будет наибольшее количество конфет среди всех детей, или false в противном случае.
Обратите внимание, что несколько детей могут получить наибольшее количество конфет одновременно.
Ограничения #
- Длина массива
candiesнаходится в диапазоне от 1 до 100 - У каждого ребенка может быть не менее 1 и не более 100 конфет
- Значение
extraCandiesнаходится в диапазоне от 1 до 50
Примеры #
-
Входные данные:
candies = [2,3,5,1,3], extraCandies = 3Ответ:
[true,true,true,false,true] -
Входные данные:
candies = [4,2,1,1,2], extraCandies = 1Ответ:
[true,false,false,false,false] -
Входные данные:
candies = [12,1,12], extraCandies = 10Ответ:
[true,false,true]
Решение #
Для решения задачи мы можем найти максимальное количество конфет среди всех детей и затем проверить, превысит ли
количество конфет у конкретного ребенка максимум, если к его количеству конфет добавить extraCandies.
Реализация #
-
package kids_with_the_greatest_number_of_candies import "slices" func kidsWithCandies(candies []int, extraCandies int) []bool { res := make([]bool, 0, len(candies)) maxCandies := slices.Max(candies) for _, count := range candies { res = append(res, count+extraCandies >= maxCandies) } return res } -
export const kidsWithCandies = (candies: number[], extraCandies: number): boolean[] => { let res: boolean[] = [] const maxCandies = Math.max(...candies) candies.forEach(count => { res.push(count + extraCandies >= maxCandies) }) return res }
Оценка сложности #
По времени
Для того чтобы найти ответ, мы дважды итерируемся по массиву, то есть совершаем 2n операций.
Итоговая сложность алгоритма равна O(n).
По памяти
Сложность по памяти линейная O(n), так как мы создаем массив длиной n для хранения ответа.