Skip to content

Latest commit

 

History

History
24 lines (20 loc) · 876 Bytes

455.分发饼干.md

File metadata and controls

24 lines (20 loc) · 876 Bytes

方法一:排序 + 贪心。

局部最优从而使得全局最优。

将两个数组排序,假设有m个孩子,每个孩子的胃口是g[i]。有n块饼干,每块饼干的尺寸是s[j],将符合当前孩子胃口的最小的饼干分配给孩子,这是因为排序后 s[j + 1] >= s[j]g[i + 1] >= g[i], 若 s[j] >= g[i] ,但是不将 j 分配给 i 小孩,而是将 j + 1 块饼干分配给 i 孩子,可能会导致第 j 块饼干无法分配给 i+1小孩,从而导致一块饼干浪费

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int ans = 0;
        int i = 0, j = 0;
        while (i < g.length && j < s.length) {
            if (s[j] >= g[i]) {
                i++;
            } 
            j++;
        }
        return i;
    }
}