java笔试题-六一儿童节
2019-03-12 00:38
78 查看
package com.zjp.offer.study; import java.util.Arrays; import java.util.Scanner; /** * 六一儿童节,老师带了很多好吃的巧克力到幼儿园。 * 每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。 * 老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。 * 可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。 */ public class MaxChild { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //小朋友数组的长度 int hLen = sc.nextInt(); //小朋友数组 int[] h = new int[hLen]; for (int i = 0; i < hLen; i++) { h[i] = sc.nextInt(); } //巧克力数组的长度 int wLen = sc.nextInt(); //巧克力数组 int[] w = new int[wLen]; for (int i = 0; i < wLen; i++) { w[i] = sc.nextInt(); } //寻找最大上台表演学生人数 int max = getMaxChild(hLen, h, wLen, w); System.out.println(max); } /** * 思路:将小朋友应该得到的巧克力重量排序,对巧克力重量排序 * 将巧克力重量最小的派给满足要求的最小学生应得的重量,这样分发可以选出最多的小朋友上台 * * @param hLen * @param h * @param wLen * @param w * @return */ private static int getMaxChild(int hLen, int[] h, int wLen, int[] w) { //指向小朋友 int i = 0; //指向巧克力 int j = 0; //保存最大结果 int max = 0; Arrays.sort(h); Arrays.sort(w); while (i < hLen && j < wLen) { if (h[i] <= w[j]) {//该小朋友可以上台 max++; i++; } j++; } return max; } }
相关文章推荐
- 关于JavaWeb的笔试面试题(一)
- java 笔试
- Java学习总结第三十三天Java笔试题(二)
- Java笔试 系列二
- Java笔试题解析(二)——2015届唯品会校招
- java笔试+面试总结——设计模式篇
- JAVA笔试题总结(一)
- Java笔试面试题
- java面试笔试题大汇总[转]
- java笔试题
- 精选30道Java笔试题解答
- 高级java工程师笔试题
- java笔试题(一)
- [转] 应聘Java笔试时可能出现问题及其答案(第十一部分)
- Java基础知识(面试笔试)
- java 笔试 :java中实现多态的机制是什么
- Java笔试题
- 剑指Offer——CVTE校招笔试题+知识点总结(Java岗)
- Android Java笔试题(带大部分答案)
- 笔试题——编写java程序:输入一个字符串,判断有几个英文字母,有几个数字,有几个其它的字符