六一兒童節

qq_30035749發表於2019-03-11

六一兒童節,老師帶了很多好吃的巧克力到幼兒園。每塊巧克力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的用法·,還有就是兩個陣列的長度可能不是一樣的,所以需要分別判斷兩個陣列是否越界,另外須將陣列越界的判斷的條件放到最前面

相關文章