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;
}
相关推荐
sugar__salt4 分钟前
网络编程套接字(二)——TCP
java·网络·网络协议·tcp/ip·java-ee·javaee
颜颜yan_6 分钟前
跨越x86与ARM:openEuler全架构算力实战评测
java·arm开发·架构
立志成为大牛的小牛6 分钟前
数据结构——五十三、处理冲突的方法——拉链法(王道408)
数据结构·学习·考研·算法
毕设源码-朱学姐7 分钟前
【开题答辩全过程】以 陪诊就医小程序设计与实现为例,包含答辩的问题和答案
java
动感小麦兜16 分钟前
NAS学习
java·开发语言·eureka
吃着火锅x唱着歌22 分钟前
LeetCode 3583.统计特殊三元组
算法·leetcode·职场和发展
FPGA_无线通信26 分钟前
OFDM 频偏补偿和相位跟踪(2)
算法·fpga开发
小安同学iter33 分钟前
天机学堂day05
java·开发语言·spring boot·分布式·后端·spring cloud·微服务
那我掉的头发算什么33 分钟前
【javaEE】文件&IO--文件内容操作
java·java-ee·文件·文件操作
SHOJYS39 分钟前
思维难度较大 贪心优化背包 [USACO22DEC] Bribing Friends G
数据结构·算法·深度优先