拼多多2018-六一儿童节
【題目】
六一兒童節(jié),老師帶了很多好吃的巧克力到幼兒園。每塊巧克力j的重量為w[j], 對(duì)于每個(gè)小朋友i,當(dāng)他分到的巧克力大小達(dá)到h[i] (即w[j]>=h[i]),他才會(huì)上去表演節(jié)目。老師的目標(biāo)是將巧克力分發(fā)給孩子們,使得最多的小孩上臺(tái)表演。可以保證每個(gè)w[i]> 0且不能將多塊巧克力分給一個(gè)孩子或?qū)⒁粔K分給多個(gè)孩子。
輸入描述:
第一行:n,表示h數(shù)組元素個(gè)數(shù)
第二行:n個(gè)h數(shù)組元素
第三行:m,表示w數(shù)組元素個(gè)數(shù)
第四行:m個(gè)w數(shù)組元素
輸出描述:
上臺(tái)表演學(xué)生人數(shù)
【例】
輸入:
有3名小朋友,分到的巧克力重量h = [2,2,3]
老師帶了2塊巧克力,重量為 w = [3,1]
分析:
由于1 < 2,1<3 所有重量為1 的巧克力分給小朋友,小朋友也不能上臺(tái)
由于3 >2 3=3;但是重量為3 的巧克力只有一塊
所以最多只能由一個(gè)小朋友上臺(tái)
【思路】
將輸入的h和w數(shù)組分別排序,找到w中比h中大的數(shù)字的個(gè)數(shù),為最多上臺(tái)的小朋友數(shù)量
【實(shí)現(xiàn)】
package nian2018;import java.util.Arrays; import java.util.Scanner;/** 六一兒童節(jié),老師帶了很多好吃的巧克力到幼兒園。每塊巧克力j的重量為w[j],* 對(duì)于每個(gè)小朋友i,當(dāng)他分到的巧克力大小達(dá)到h[i] (即w[j]>=h[i]),他才會(huì)上去表演節(jié)目。* 老師的目標(biāo)是將巧克力分發(fā)給孩子們,使得最多的小孩上臺(tái)表演。可以保證每個(gè)w[i]> 0且不能將多塊巧克力分給一個(gè)孩子或?qū)⒁粔K分給多個(gè)孩子。 輸入描述: 第一行:n,表示h數(shù)組元素個(gè)數(shù)第二行:n個(gè)h數(shù)組元素第三行:m,表示w數(shù)組元素個(gè)數(shù)第四行:m個(gè)w數(shù)組元素*/ public class Pinduoduo3 {public static void main(String[] args) {//小朋友和他們分到的巧克力Scanner sc = new Scanner(System.in);int n = sc.nextInt();int[] h = new int[n];for(int i = 0;i<n;i++){h[i] = sc.nextInt();}//老師帶的巧克力的重量int m = sc.nextInt();int[] w = new int[m];for(int i = 0;i<m;i++){w[i] = sc.nextInt();}Arrays.sort(h);//對(duì)小朋友排序Arrays.sort(w);//對(duì)巧克力排序int hStart = 0;int count = 0;for(int i =0;i<w.length;i++){//遍歷:如果老師帶的巧克力的重量小于小朋友的重量跳過if(w[i] < h[hStart]){continue;}//如果老師帶到巧克力的重量大于小朋友的重量,把巧克力分給他,他能上臺(tái),else{count++;hStart++;//如果遍歷到最后一名學(xué)生 不找了,if(hStart == n){break;}}}System.out.println(count);} }總結(jié)
以上是生活随笔為你收集整理的拼多多2018-六一儿童节的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 健康系列——如何增强免疫力
- 下一篇: 爬虫数据解析与提取