算法笔试练习题
题目描述
根据同学的成绩给同学发苹果,要求:每个同学至少发一个;相邻的同学分数高的一定比分数低的苹果多,问你老师至少需要准备多少苹果?例如[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[i] = right

这篇博客主要介绍了两道Java算法笔试题目,包括根据学生分数分配苹果的问题,确保每个学生至少一个,且分数高者获得更多,以及如何解决多数组元素的全排列问题。通过代码实现来解析解题思路。
最低0.47元/天 解锁文章
2196

被折叠的 条评论
为什么被折叠?



