分糖果

题目:

有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 }
复制代码

笔记:

  进行两次相反方向的比较。

posted @   John_yan15  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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工具
点击右上角即可分享
微信分享提示