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

LeetCode 分发糖果II题解

LeetCode 分发糖果II题解

题目描述

老师要给孩子们分发糖果。但是,如果一个孩子的评分比他相邻的孩子的评分高,他必须获得比相邻孩子更多的糖果。请问老师至少要准备多少糖果?

示例

输入:ratings = [1,0,2]
输出:5

解题思路

方法:贪心

思路

  • 使用贪心算法,两次遍历。
  • 第一次从左到右遍历,确保每个孩子的糖果数比左边的孩子多。
  • 第二次从右到左遍历,确保每个孩子的糖果数比右边的孩子多。
  • 取两次遍历结果的最大值。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。

代码实现

def candy(ratings): n = len(ratings) candies = [1] * n for i in range(1, n): if ratings[i] > ratings[i-1]: candies[i] = candies[i-1] + 1 for i in range(n-2, -1, -1): if ratings[i] > ratings[i+1]: candies[i] = max(candies[i], candies[i+1] + 1) return sum(candies) # 测试 def test_candy(): ratings = [1, 0, 2] print(candy(ratings)) # 输出:5 if __name__ == "__main__": test_candy()

总结

分发糖果II是贪心算法的典型应用,通过两次遍历来确保每个孩子的糖果数比相邻的孩子多。

http://www.jsqmd.com/news/832991/

相关文章:

  • Arduino开发实战:从Blink到I2C与LoRa无线通信全解析
  • 基于Vue 3的轻量级ChatGPT前端MVP项目架构与实战指南
  • 移动端GPT应用开发全攻略:从架构设计到性能优化
  • Walrus:声明式代码仓库管理工具,简化微服务与多仓库项目协作
  • 织物缺陷检测数据集VOC+YOLO格式2339张7类别
  • 2025-2026年深圳除甲醛公司推荐:五家口碑好的评测 全屋除醛避免虚假承诺注意事项 - 品牌推荐
  • Python高性能折叠库fold:原理、应用与性能优化实践
  • LeetCode 字典序最小子序列题解
  • iOS越狱终极指南:解锁iPhone隐藏功能,实现iOS 17-26完全自定义
  • Overture开源AI应用框架:全栈开发与生产部署实战指南
  • 企业级语音流水线崩盘复盘(日均50万请求):ElevenLabs Rate Limit绕行策略、异步批处理架构与熔断兜底方案
  • Rust高性能压缩工具ax:多算法、并行化与场景化配置指南
  • 玩具相机滤镜失效真相,深度解析--style raw、--hd与--no参数在MJ 6.1中的底层冲突机制及绕过方案
  • TranslucentTB启动失败终极解决方案:完整修复与优化指南
  • AI赋能广告拦截:为uBlock Origin注入智能黑名单的实践指南
  • AI增强版Grep:用自然语言搜索代码的革命性工具
  • 基于Next.js与Ollama构建现代化本地AI对话Web界面
  • R3nzSkin国服换肤终极指南:免费解锁全英雄皮肤
  • 企业征信数据整合解决方案:天眼查与企查查双源爬虫框架深度解析
  • 2026年降AI工具退款保障对比:主流五款工具售后退款政策与保障承诺完整分析
  • ClawCode方法论:构建高效个人知识库的抓取与编码实践
  • ElevenLabs匈牙利语TTS落地实录:从零配置到生产级部署的7大关键步骤
  • 【仅限前200名】Midjourney铂金印相专属Prompt库泄露:含17组经暗房验证的--v 6.2参数矩阵与胶片光谱校准模板
  • 高性能压缩工具ax:现代数据压缩的原理、实现与调优
  • MCP服务器生产部署实战:从Docker到Kubernetes的完整指南
  • AI率降不下来怎么办深度解读:2026年降AI工具处理后仍超标原因与免费应对完整方案
  • 【小沐学C++】MFC桌面应用现代化:三大Web嵌入方案实战对比(WebBrowser、WebView2、CEF3)
  • FanControl终极指南:Windows平台风扇智能控制解决方案
  • 基于微软开源方案构建企业级智能知识库:RAG架构与生产实践
  • 开发者提示词工程实战:从基础原理到高效应用