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;
}
相关推荐
2501_941822751 分钟前
面向灰度发布与风险隔离的互联网系统演进策略与多语言工程实践分享方法论记录思考汇总稿件
android·java·人工智能
@小码农5 分钟前
6547网:202512 GESP认证 C++编程 一级真题题库(附答案)
java·c++·算法
秋96 分钟前
idea中使用AI编程助手Cursor详解
java·intellij-idea·ai编程
q行7 分钟前
java学习日志--IO流(使用)
java·学习·io流
vyuvyucd8 分钟前
Linux线程编程:POSIX与C++实战指南
java·开发语言
自然语18 分钟前
人工智能之数字生命-特征类升级20260106
人工智能·算法
菜鸟233号19 分钟前
力扣343 整数拆分 java实现
java·数据结构·算法·leetcode
赫凯23 分钟前
【强化学习】第五章 时序差分算法
算法
leiming626 分钟前
c++ find_if 算法
开发语言·c++·算法
yuanmenghao27 分钟前
自动驾驶中间件iceoryx - 内存与 Chunk 管理(三)
数据结构·c++·算法·链表·中间件·自动驾驶