天天看點

455. 分發餅幹思考

455. 分發餅幹

假設你是一位很棒的家長,想要給你的孩子們一些小餅幹。但是,每個孩子最多隻能給一塊餅幹。

對每個孩子 i,都有一個胃口值 g[i],這是能讓孩子們滿足胃口的餅幹的最小尺寸;并且每塊餅幹 j,都有一個尺寸 s[j] 。如果 s[j] >= g[i],我們可以将這個餅幹 j 配置設定給孩子 i ,這個孩子會得到滿足。你的目标是盡可能滿足越多數量的孩子,并輸出這個最大數值。

示例 1:

輸入: g = [1,2,3], s = [1,1]

輸出: 1

解釋:

你有三個孩子和兩塊小餅幹,3個孩子的胃口值分别是:1,2,3。

雖然你有兩塊小餅幹,由于他們的尺寸都是1,你隻能讓胃口值是1的孩子滿足。

是以你應該輸出1。

示例 2:

輸入: g = [1,2], s = [1,2,3]

輸出: 2

解釋:

你有兩個孩子和三塊小餅幹,2個孩子的胃口值分别是1,2。

你擁有的餅幹數量和尺寸都足以讓所有孩子滿足。

是以你應該輸出2.

思考

簡單的貪心算法 每次用最小值的餅幹比對最小胃口的學生

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        int eated=0;
        int begin= 0;
        Arrays.sort(g);
        Arrays.sort(s);
        for(int i=0;i<s.length;i++){
            if(eated==g.length) break;
            for (int j =begin;j<g.length;j++){
                if(g[j]<=s[i]){
                    eated++;
                    begin=j+1;
                    break;
                }
            }

        }
        return eated;
    }
}