-
Notifications
You must be signed in to change notification settings - Fork 319
/
Copy path135_Candy.py
38 lines (31 loc) · 894 Bytes
/
135_Candy.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#! /usr/bin/env python
# -*- coding: utf-8 -*-
class Solution(object):
def candy(self, ratings):
candies = [0 for i in ratings]
candies[0] = 1
children_nums = len(ratings)
# Scan from left to right
for i in range(children_nums - 1):
if ratings[i + 1] > ratings[i]:
candies[i + 1] = candies[i] + 1
else:
candies[i + 1] = 1
minimum_candies = 0
# Scan from right to left
for i in range(children_nums - 1, 0, -1):
if ratings[i - 1] > ratings[i]:
candies[i - 1] = max(candies[i] + 1, candies[i - 1])
else:
candies[i - 1] = max(1, candies[i - 1])
minimum_candies += candies[i]
return minimum_candies + candies[0]
"""
[0]
[2,2,1]
[3,4,8,6,7]
[4,3,8,6,7]
[1,2,4,4,3]
[1,2,4,4,5]
[4,4,4,4,4]
"""