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;
}
相关推荐
Sylvia-girl11 小时前
Lambda表达式
java·开发语言
苦藤新鸡11 小时前
19.旋转输出矩阵
c++·算法·leetcode·力扣
zsffuture11 小时前
RKNN 8位量化全解析:算法差异与粒度选择实战指南
算法
玄冥剑尊11 小时前
贪心算法深化 II
算法·贪心算法
Pluchon11 小时前
硅基计划4.0 算法 动态规划入门
java·数据结构·算法·动态规划
玄冥剑尊11 小时前
贪心算法深化 III
算法·贪心算法
Java程序员威哥11 小时前
Java应用容器化最佳实践:Docker镜像构建+K8s滚动更新(生产级完整模板+避坑指南)
java·开发语言·后端·python·docker·kubernetes·c#
shjita11 小时前
mr-----topn的用法
java
小范馆11 小时前
C++ 编译方法对比:分步编译 vs 一步到位
java·开发语言·c++
ascarl201011 小时前
记录一下Nacos和XXLJOB修复漏洞
java