编程挑战高校俱乐部分配糖果答案
2014-09-16 15:41
204 查看
题目详情
有n个小朋友站成一排(编号从0到n-1),每个小朋友有一个rating值,存放在ratings数组中。老师需要给他们分配糖果,每个小朋友至少需要一颗糖果,对于任意相邻的两个小朋友i和i+1,rating值大的必须比rating值小的分配的糖果多(rating相同的没必要分配一样多的糖果)。
请计算最少需要多少颗糖果,才能完成上述分配。
输入格式:
多组数据,每组数据第一行是一个正整数n。
接下来n行,每行有1个正整数,表示每个小朋友的rating值。所有整数都不超过100000。
输出格式:
每组数据一行,包括一个正整数,表示做少需要的糖果数。
答题说明
输入样例
3
1
2
2
输出样例:
4
挑战成功,代码如下:
有n个小朋友站成一排(编号从0到n-1),每个小朋友有一个rating值,存放在ratings数组中。老师需要给他们分配糖果,每个小朋友至少需要一颗糖果,对于任意相邻的两个小朋友i和i+1,rating值大的必须比rating值小的分配的糖果多(rating相同的没必要分配一样多的糖果)。
请计算最少需要多少颗糖果,才能完成上述分配。
输入格式:
多组数据,每组数据第一行是一个正整数n。
接下来n行,每行有1个正整数,表示每个小朋友的rating值。所有整数都不超过100000。
输出格式:
每组数据一行,包括一个正整数,表示做少需要的糖果数。
答题说明
输入样例
3
1
2
2
输出样例:
4
挑战成功,代码如下:
import java.util.Scanner; public class Children { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = 0; int sweetCount = 0; while (cin.hasNext()) { sweetCount = 0; n = cin.nextInt(); int[] ratings = new int ; for (int i = 0; i < n; i++) { ratings[i] = cin.nextInt(); } int[] sweets = new int ; sweets[n - 1] = 1; for (int i = n - 1; i > 0; i--) { int j = i; if (ratings[j] < ratings[j - 1]) { sweets[j - 1] = sweets[j] + 1; } else if (ratings[j] == ratings[j - 1]) { sweets[j - 1] = 1; } else { if (sweets[j] == 1) { for (int k = j; k < n; k++) { sweets[k]++; if (k == n - 1 || ratings[k] >= ratings[k + 1] || (ratings[k] < ratings[k + 1] && sweets[k] < sweets[k + 1])) break; } } sweets[j - 1] = 1; } } for (int i : sweets) { sweetCount += i; } System.out.println(sweetCount); } cin.close(); } }
相关文章推荐
- POJ3159—糖果分配 差分约束系统实现
- 多退少补1:分配最少糖果数
- 分配糖果问题——Leetcode系列(十五)
- 《C++ Primer Plus(第六版)》(23)(第十二章 类和动态内存分配 复习题和答案)
- To_10_r_100_1---N个孩子站成一排,给每个人设定一个权重(已知)。按照如下的规则分配糖果
- 动态规划之糖果分配
- 常见LTE问题及答案汇总(资源分配方法、ICIC、CoMP、SC)
- [各种面试题] 分配糖果
- 《数据结构》第二章 线性表 同学提问答案收集 分配
- Candy 分配糖果
- 编程挑战(二)分配糖果
- TFS能否将工作项分配给多个人(组)?答案是肯定的。
- 分配糖果程序
- 欢乐暑假线上编程比赛第四题:分配糖果
- 欢乐暑假线上编程比赛第四题:分配糖果(解答)
- Python实现的基于优先等级分配糖果问题算法示例
- 有N个孩子站在一条线上。 每个孩子都被分配一个评分值。你给这些孩子,每个孩子必须至少有一个糖果具有较高评级的儿童比邻居获得更多的糖果。 你必须给予的最低
- 欢乐暑假线上编程比赛第四题:分配糖果
- 挑战篇二.2:内存池分配问题(最优适应算法)——答案错误
- 《C++ Primer Plus(第六版)》(24)(第十二章 类和动态内存分配 编程题和答案)