Candy Distribution
Problem statement
There are n children standing in a line. The integer array ratings gives each child's rating.
Distribute candies subject to these rules:
- Every child receives at least one candy.
- A child with a higher rating than an adjacent child receives more candies than that neighbor.
Return the minimum total number of candies required.
Function
minimumCandies(ratings: int[]) → intExamples
Example 1
ratings = [1,0,2]return = 5A minimum valid distribution is [2,1,2].
Example 2
ratings = [1,2,2]return = 4A minimum valid distribution is [1,2,1]. Equal ratings do not require equal candy counts.
Example 3
ratings = [1,3,4,5,2]return = 11The increasing run and final drop require the minimum distribution [1,2,3,4,1].
Constraints
1 <= ratings.length <= 2 * 10^4.0 <= ratings[i] <= 2 * 10^4.