六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
int len1=Integer.parseInt(sc.nextLine());
String student[]=sc.nextLine().split("\\s+");
int len2=Integer.parseInt(sc.nextLine());
String chocolate[]=sc.nextLine().split("\\s+");
int stu[]=new int[len1];
int cho[]=new int[len2];
// int stu[]=new int[len1];
//int cho[]=new int[len2];
for(int i=0;i<len1;i++)
{
stu[i]=(Integer.parseInt(student[i]));
}
for(int i=0;i<len2;i++)
{
cho[i]=(Integer.parseInt(chocolate[i]));
}
Arrays.sort(stu);
Arrays.sort(cho);
int count=0;
int k=len2-1;
for(int j=len1-1;j>=0;j--)
{
if((k>=0)&&(stu[j]<=cho[k])){//数组越界条件放在最前面
k--;
count++;
}
}
System.out.println(count);
}
}
这个题呢是一个很简单的题,从这道题呢我获取了Array.sort的用法·,还有就是两个数组的长度可能不是一样的,所以需要分别判断两个数组是否越界,另外须将数组越界的判断的条件放到最前面