Leetcode 135. Candy
Posted SnailTyan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode 135. Candy相关的知识,希望对你有一定的参考价值。
文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Description
2. Solution
**解析:**Version 1,首先保证糖果至少为1
,因此创建值都为1
的数组,然后从从左往右,右边评分大于左侧评分时,右侧糖果等于左侧糖果加1
,保证了糖果从左到右的分配关系,接下来,从右向左,左侧评分大于右侧评分时,左侧糖果等于右侧糖果加1
,保证了糖果从右到左的分配关系,这样就保证了糖果的公正分配,每次加1
,保证了通过最少的糖果来保证分配关系,最终数组求和就可得出所需的糖果数量。
- Version 1
class Solution:
def candy(self, ratings: List[int]) -> int:
n = len(ratings)
candies = [1] * n
for i in range(1, n):
if ratings[i] > ratings[i-1] and candies[i] <= candies[i-1]:
candies[i] = candies[i-1] + 1
for i in range(n-1, 0, -1):
if ratings[i] < ratings[i-1] and candies[i] >= candies[i-1]:
candies[i-1] = candies[i] + 1
return sum(candies)
Reference
以上是关于Leetcode 135. Candy的主要内容,如果未能解决你的问题,请参考以下文章
Baozi Leetcode solution 135: Candy