12345678910111213141516171819202122232425262728293031323334 |
- from typing import List
- class Solution:
- def candy(self, ratings: List[int]) -> int:
- if not ratings:
- return 0
-
- size = len(ratings)
- new_current = [1] * size
- cnt = 1 # 糖果总数
- current = 1 # 当前连续增加或减少的糖果数
- old = ratings[0] # 前一个评分
-
- for i in range(1, size):
- k = 0
- if old > ratings[i]: # 如果当前评分低于前一个评分
- current = 1 # 重置当前糖果数为 1
- # for j in range(0,i):
- # if new_current[j] == 1:
- # k += 1
- cnt = cnt + i # 减去之前的索引
- elif old < ratings[i]: # 如果当前评分高于前一个评分
- current += 1 # 当前糖果数加 1
- else: # 如果当前评分与前一个评分相等
- current -= 1 # 当前糖果数减 1
- new_current[i] = current
- cnt = cnt + current # 更新糖果总数
- old = ratings[i] # 更新前一个评分
-
- return cnt
- if __name__ == '__main__':
- solution = Solution()
- print(solution.candy([1,3,2,2,1]))
|