leetcode:(455) Assign Cookies(java)

题目:

       

Assume you are an awesome parent and want to give your children some cookies. But, you should give each child at most one cookie. Each child i has a greed factor gi, which is the minimum size of a cookie that the child will be content with; and each cookie j has a size sj. If sj >= gi, we can assign the cookie j to the child i, and the child i will be content. Your goal is to maximize the number of your content children and output the maximum number.

Note:
You may assume the greed factor is always positive. 
You cannot assign more than one cookie to one child.

Example 1:

Input: [1,2,3], [1,1]

Output: 1

Explanation: You have 3 children and 2 cookies. The greed factors of 3 children are 1, 2, 3. 
And even though you have 2 cookies, since their size is both 1, you could only make the child whose greed factor is 1 content.
You need to output 1.

Example 2:

Input: [1,2], [1,2,3]

Output: 2

Explanation: You have 2 children and 3 cookies. The greed factors of 2 children are 1, 2. 
You have 3 cookies and their sizes are big enough to gratify all of the children, 
You need to output 2.

题目描述:

       每个孩子都有一个满足度,每个饼干都有一个大小,只有饼干的大小大于等于一个孩子的满足度,该孩子才会获得满足。求解最多可以获得满足的孩子数量。

解题思路:

    给一个孩子的饼干应当尽量小又能满足该孩子,这样大饼干就能拿来给满足度比较大的孩子。因为最小的孩子最容易得到满足,所以先满足最小的孩子。

扫描二维码关注公众号,回复: 4326805 查看本文章

具体思路及代码如下:

    

package Leetcode_Github;

import java.util.Arrays;

public class GreedyThought_FindContentChildren_455_1108 {
    public int findGreedyChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int gCount = 0, sCount = 0;
        for (; gCount < g.length && sCount < s.length; ) {
            if (g[gCount] <= s[sCount]) {
                gCount++;
            }
            sCount++;
        }
        return gCount;
    }
}

猜你喜欢

转载自blog.csdn.net/Sunshine_liang1/article/details/83855801