63 贪心算法解分发糖果的问题

问题描述:老师想给孩子们分发糖果,由N个孩子占城了一条直线,老师会根据每个孩子的表现,预先给他们评分,你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配一个糖果,评分更高的孩子必须比他两侧邻位孩子获得更多的糖果,这样下来老师需要准备多少颗糖果,

贪心算法求解:左右两次遍历,第一次遍历从左往右,要是右边比左边高,则右边增加一个糖果,第二次遍历从右往左,如果左边比右边高,则左边增加一个糖果,

java 复制代码
public numberCandy(int []nums)
{
nums[0]=1;
for(int i=1;i<nums.length;i++)
{
if(nums[i]>nums[i-1])
{
nums[i]=nums[i-1]+1;
}else
{
if(nums[i-1]==1)
{
nums[i]=1;
}else
{
nums[i]=nums[i-1]+1;
}
}
}
for(int i=nums.length-2;i>=0;i--)
{
if(nums[i]>nums[i+1]){nums[i]=nums[i-1]+1;}

}
int total=0;
for(int num:nums)
{
total+=num;
}
​​​​​​​return total;
}
相关推荐
鹏程十八少6 分钟前
8. Android 深入插件化Shadow源码:揭秘插件Activity启动的完整链路(源码解析)
java·前端·面试
老四啊laosi7 分钟前
[双指针] 3. 力扣--快乐数
算法·leetcode·快慢指针
rit84324997 分钟前
利用随机有限集(RFS)理论结合ILQR和MPC控制蜂群的MATLAB实现
算法·matlab
程序员清风8 分钟前
OpenAI创始人学AI的底层逻辑,普通人照着做就能上手!
java·后端·面试
Memory_荒年10 分钟前
Netty面试终极指南:从“Hello World”到源码深处
java·后端
0xDevNull11 分钟前
Java IO流教程:从入门到最佳实践
java·后端
好家伙VCC11 分钟前
**发散创新:用 Rust实现数据编织(DataWrangling)的高效流式处理架构**在现
java·开发语言·python·架构·rust
要开心吖ZSH12 分钟前
MP4 转 WAV 音频转码方案详解(ProcessBuilder + FFmpeg)
java·ffmpeg·音视频
会编程的土豆12 分钟前
leetcode hot 100 之哈希
算法·leetcode·哈希算法
秋天的一阵风12 分钟前
【LeetCode 刷题系列|第 3 篇】详解大数相加:从模拟竖式到简洁写法的优化之路🔢
前端·算法·面试