(プログラミング)ビスケット分布あなたが親しているとし、あなたがあなたの子供いくつかのクッキーを与えたい、あなたはビスケットに子をあきらめることができます。私は貪欲係数GIを持っているそれぞれの子を、GIは、あなたがこれを満たすことができることを意味しビスケットのI子の最小サイズ。各ビスケットjはSJの≥GIの場合、私たちは私が、私は子供が満たされる子どもjにクッキーを割り当てることができ、自分のサイズSJを持っています。目標は、子供の数を満たすために満足して子供や出力の数を最大化することです。
例1:
入力:最初の行の貪欲因子、ビスケットの2行目の大きさ
1 2 3
1 1
出力:
1
例2:
入力:1 2
1 2 3
出力:
2
アイデア:子供の食欲を満たすためにアップに行きたい、私たちの戦略は、貪欲の要因とビスケットサイズのソートを取ることです。そして、彼の最小ビスケットの食欲を満たすために、最小の子食欲からスタート。二つのポインタ、貪欲に1つ、クッキーの大きさのための1つを提供します。
公共 int型のfind(INT [] 貪欲、int型 [] クッキーを){
配列。ソート(貪欲)。
配列。ソート(クッキー);
int型 RET = 0;
用(int型 I = 0、J = 0; iは< 貪欲。長&& J < クッキー。長さ;){
もし(貪欲[ I ] <= クッキー[ J ]){
I ++;
J ++;
題する++;
} 他 {
J ++;
}
}
リターン RET ;
}