package com.company;
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] g = {1,2,3};//小孩的胃口
int[] s = {1, 1};//饼干大小
int nums = findContentChildren(g,s);
System.out.println(nums);
}
public static int findContentChildren(int[] g, int[] s) {
int result=0;
if(g==null||s==null||g.length==0||s.length==0){
return 0;
}
Arrays.sort(g);//升序排列
Arrays.sort(s);//升序排列
int index=s.length-1;//倒序遍历
//思路:尽量用大的饼干去满足胃口大的小孩
for(int i=g.length-1;i>=0;i--){//倒序遍历
if(index>=0&&g[i]<=s[index]){
result++;
index--;//只有饼干被用了,才往前移动
}
}
return result;
}
}
public class Main {
public static void main(String[] args) {
int[] g = {10,9,8,7};//小孩的胃口
int[] s = {5,6,7,8};//饼干大小
int nums = findContentChildren(g,s);
System.out.println(nums);
}
public static int findContentChildren(int[] g, int[] s) {
int result=0;
if(g==null||s==null||g.length==0||s.length==0){
return 0;
}
Arrays.sort(g);//升序排列
Arrays.sort(s);//升序排列
int index=0;//升序遍历
//思路:尽量用小的饼干去满足胃口小的小孩
for(int i=0;i<s.length;i++){//升序遍历
if(index<g.length&&g[index]<=s[i]){
result++;
index++;//只有小孩被满足了才往后移
}
}
return result;
}
}
以上为两种解法:第一种解法用大的饼干先满足大胃口的小孩,第二种解法先用小的饼干尽量满足小胃口小孩。