#1536. 糖果分发问题
糖果分发问题
故事背景
在一个幼儿园里,老师要给孩子们分发糖果。为了公平起见,老师制定了以下规则:每个孩子至少得到一颗糖果;对于相邻的孩子,如果一个孩子的表现评分比另一个高,那么评分高的孩子必须得到更多的糖果。作为老师的助手,你需要计算出最少需要多少颗糖果才能满足这些规则。
题目描述
一群孩子站成一排,每个孩子有一个评分。你需要给每个孩子分发糖果,满足以下要求:
- 每个孩子至少得到一颗糖果。
- 相邻的孩子中,评分高的孩子必须得到比评分低的孩子更多的糖果。
请计算最少需要多少颗糖果。
输入格式
第一行输入一个整数 n ( ),表示孩子的数量。
第二行输入 n 个整数,表示每个孩子的评分。
输出格式
输出一个整数,表示最少需要的糖果数量。
样例输入 1
3
1 0 2
样例输出 1
5
样例输入 2
3
1 2 2
样例输出 2
4
样例输入 3
5
1 3 2 2 1
样例输出 3
7
提示
- 这是一个经典的贪心算法问题
- 可以考虑从左到右和从右到左两次遍历数组
- 第一次遍历处理右侧评分高于左侧的情况
- 第二次遍历处理左侧评分高于右侧的情况
- 最终取两次遍历的最大值作为每个孩子的糖果数