孩子分巧克力

孩子分巧克力

package 机试;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.Arrays;

public class D3_23_1 {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
		String line=bf.readLine();
		int child=Integer.parseInt(line);
		String str[]=bf.readLine().split(" ");
		int h[]=new int[child];
		for(int i=0;i<child;i++)
		{
			h[i]=Integer.parseInt(str[i]);
		}
		Arrays.sort(h);
		String line2=bf.readLine();
		int chocolate=Integer.parseInt(line2);
		String str2[]=bf.readLine().split(" ");
		int w[]=new int[chocolate];
		for(int i=0;i<chocolate;i++)
		{
			w[i]=Integer.parseInt(str2[i]);
		}
		Arrays.sort(w);
		int times=0;
		int i=0;
		int j=0;
		while(i<child&&j<chocolate)
		{
			if(w[j]>=h[i])
			{	
				times++;
				i++;
			}
			j++;

		}
		System.out.println(times);
	}

}

思路:获取输入的两个数组,依次调用函数排序。然后进行一个比较的操作:

这部分要好好理解一下:

	int times=0;
		int i=0;
		int j=0;
		while(i<child&&j<chocolate)
		{
			if(w[j]>=h[i])
			{	
				times++;
				i++;
			}
			j++;

		}
		System.out.println(times);