LeetCode 135 Candy - Implementation

The code

Two passes to satisfy left and right neighbors.

def candy(ratings): n = len(ratings) candies = [1] * n

for i in range(1, n):
    if ratings[i] > ratings[i - 1]:
        candies[i] = candies[i - 1] + 1

for i in range(n - 2, -1, -1):
    if ratings[i] > ratings[i + 1]:
        candies[i] = max(candies[i], candies[i + 1] + 1)

return sum(candies)

O(n)O(n) time, O(n)O(n) space.