算法笔试练习题
题目描述
根据同学的成绩给同学发苹果,要求:每个同学至少发一个;相邻的同学分数高的一定比分数低的苹果多,问你老师至少需要准备多少苹果?例如[1,0,1] --> 第一个人分2个,第二个人分1个,第三个人分2个,一共5个。例如[3,5,5] --> 第一个人分1个,第二个人分2个,第三个人分1个,一共4个。
代码实现
/**
* 根据同学的成绩给同学发苹果,
* 要求:每个同学至少发一个;相邻的同学分数高的一定比分数低的苹果多,问你老师至少需要准备多少苹果?
* 例如[1,0,1] --> 第一个人分2个,第二个人分1个,第三个人分2个,一共5个。
* 例如[3,5,5] --> 第一个人分1个,第二个人分2个,第三个人分1个,一共4个
*/
public static int AppleQuestion(int[] arr) {
int sum = 0; //总个数
int[] left = new int[arr.length]; //左比较
int[] right = new int[arr.length]; //右比较
for (int i = 0; i < arr.length; ++i) {
left