当前位置: 首页 > news >正文

135. 分发糖果

135. 分发糖果

class Solution:def candy(self, ratings: List[int]) -> int:# 初始值n = ans = len(ratings)i = 0while i < n :# 从start开始,如果i>0且数组此时递增,则从前一位算起# 否则从当前i算起start = i-1 if i > 0 and ratings[i] > ratings[i-1] else i # 严格递增区间while i + 1  < n and ratings[i+1] > ratings[i]:i += 1top = i # 严格递减区间while i + 1  < n and ratings[i+1] < ratings[i]:i+=1inc = top -startdec = i-top# 递增/减段的额外糖果(等差数列求和)+峰顶的额外糖果(保证满足左右两侧)ans += ((inc-1)*inc + dec*(dec-1))//2 +max(inc,dec)i+= 1return ans

相关文章:

  • 2.1.1 通信基础的基本概念
  • F(x,y)= 0 隐函数 微分法
  • sizeof 与strlen的区别
  • 基于规则的自然语言处理
  • 进程与线程的区别
  • 5-C#的DateTime使用
  • 2025.6.8
  • java 时区时间转为UTC
  • 一种停车场自动停车导航器的设计(论文+源码)
  • 31.2linux中Regmap的API驱动icm20608实验(编程)_csdn
  • 【存储基础】对象存储基础知识
  • 动态生成 PV 的机制:使用 NFS-Client Provisione
  • Python训练打卡Day43
  • Angular中Webpack与ngx-build-plus 浅学
  • nodejs环境变量配置
  • Day25 异常处理
  • 力扣HOT100之二分查找:4. 寻找两个正序数组的中位数
  • pymongo配置事务环境并封装事务功能
  • (三)Linux性能优化-CPU-CPU 使用率
  • JDBC基础关键_001_认识