tangguo.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  1. from typing import List
  2. class Solution:
  3. def candy(self, ratings: List[int]) -> int:
  4. if not ratings:
  5. return 0
  6. size = len(ratings)
  7. new_current = [1] * size
  8. cnt = 1 # 糖果总数
  9. current = 1 # 当前连续增加或减少的糖果数
  10. old = ratings[0] # 前一个评分
  11. for i in range(1, size):
  12. k = 0
  13. if old > ratings[i]: # 如果当前评分低于前一个评分
  14. current = 1 # 重置当前糖果数为 1
  15. # for j in range(0,i):
  16. # if new_current[j] == 1:
  17. # k += 1
  18. cnt = cnt + i # 减去之前的索引
  19. elif old < ratings[i]: # 如果当前评分高于前一个评分
  20. current += 1 # 当前糖果数加 1
  21. else: # 如果当前评分与前一个评分相等
  22. current -= 1 # 当前糖果数减 1
  23. new_current[i] = current
  24. cnt = cnt + current # 更新糖果总数
  25. old = ratings[i] # 更新前一个评分
  26. return cnt
  27. if __name__ == '__main__':
  28. solution = Solution()
  29. print(solution.candy([1,3,2,2,1]))