分糖果
题目:
有N个小朋友站在一排,每个小朋友都有一个评分
你现在要按以下的规则给孩子们分糖果:
- 每个小朋友至少要分得一颗糖果
- 分数高的小朋友要他比旁边得分低的小朋友分得的糖果多
你最少要分发多少颗糖果?
示例:
输入:[1, 2, 2] 输出:4
代码:
1 import java.util.*; 2 public class Solution { 3 /** 4 * 5 * @param ratings int整型一维数组 6 * @return int整型 7 */ 8 public int candy (int[] ratings) { 9 // write code here 10 int count = 0; 11 int[] suger = new int[ratings.length]; 12 Arrays.fill(suger,1); 13 //从左至右依次比较,保证比前一个分数低的糖果多 14 for( int i = 1; i < ratings.length; i ++ ) { 15 if( ratings[i] > ratings[i - 1] ) 16 suger[i] += suger[i - 1]; 17 } 18 //从右至左依次比较,保证分数大的,糖果多 19 for( int i = ratings.length - 1; i > 0; i -- ) { 20 count += suger[i]; 21 if( ratings[i] < ratings[i - 1] && suger[i - 1] <= suger[i] ) 22 suger[i - 1] = suger[i] + 1; 23 } 24 count += suger[0]; 25 return count; 26 } 27 }
笔记:
进行两次相反方向的比较。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具