AlgoLounge

Candy

medium

There are n children standing in a line. Each child is assigned a rating value given in the integer array ratings.

You are giving candies to these children subjected to the following requirements:

  • Each child must have at least one candy.
  • Children with a higher rating get more candies than their neighbors.

Return the minimum number of candies you need to have to distribute the candies to the children.

Examples

Example 1

Input:  ratings = [4,3,5]
Output: 5

You can allocate to the first, second and third child with 2, 1, 2 candies respectively.

Example 2

Input:  ratings = [2,3,3]
Output: 4

You can allocate to the first, second and third child with 1, 2, 1 candies respectively. The third child gets 1 candy because it satisfies the above two conditions.

Constraints

  • 1 <= ratings.length <= 20000
  • 0 <= ratings[i] <= 20000
TypeScript
Loading editor…
List of test cases (12)
Case 1
ratings = [4,3,5]
Case 2
ratings = [2,3,3]
Case 3
ratings = [1]
Case 4
ratings = [1,0,2]
Case 5
ratings = [1,2,2]
Case 6
ratings = [1,3,2,2,1]
Case 7
ratings = [1,2,3,4,5]
Case 8
ratings = [5,4,3,2,1]
Case 9
ratings = [1,3,4,5,2]
Case 10
ratings = [2,1,4,9,3,6,2]
Case 11
ratings = [0,1,2,3,2,1,0]
Case 12
ratings = [3,2,1,2,3]