美文网首页
Day68 分发饼干

Day68 分发饼干

作者: 快乐的老周 | 来源:发表于2020-09-07 22:42 被阅读0次

假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值 gi

,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj 。如果 sj >= gi ,我们可以将这个饼干 j 分配给孩子 i

,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

注意:

你可以假设胃口值为正。

一个小朋友最多只能拥有一块饼干。

示例 1:

输入: [1,2,3], [1,1]

输出: 1

解释:

你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。

虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。

所以你应该输出1。

示例 2:

输入: [1,2], [1,2,3]

输出: 2

解释:

你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。

你拥有的饼干数量和尺寸都足以让所有孩子满足。

所以你应该输出2.

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/assign-cookies

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def findContentChildren(self, g, s):
        result = 0
        g.sort()
        s.sort()
        p_kid,p_cookie = 0,0 #双指针,分别指向列表的开头
        while p_kid < len(g) and p_cookie < len(s):
            while p_cookie < len(s) and p_kid < len(g) and s[p_cookie] >= g[p_kid] :
                p_kid += 1
                p_cookie += 1
                result += 1
                break
            else:
                p_cookie += 1
        return result


def test_findContentChildren():
    s = Solution()
    assert s.findContentChildren([1,2,3], [1,1]) == 1
    assert s.findContentChildren([1,2], [1,2,3]) == 2
    assert s.findContentChildren([1,2,3], [3]) == 1
    assert s.findContentChildren([262,437,433,102,438,346,131,160,281,34,219,373,466,275,51,118,209,32,108,57,385,514,439,73,271,442,366,515,284,425,491,466,322,34,484,231,450,355,106,279,496,312,96,461,446,422,143,98,444,461,142,234,416,45,271,344,446,364,216,16,431,370,120,463,377,106,113,406,406,481,304,41,2,174,81,220,158,104,119,95,479,323,145,205,218,482,345,324,253,368,214,379,343,375,134,145,268,56,206], [149,79,388,251,417,82,233,377,95,309,418,400,501,349,348,400,461,495,104,330,155,483,334,436,512,232,511,40,343,334,307,56,164,276,399,337,59,440,3,458,417,291,354,419,516,4,370,106,469,254,274,163,345,513,130,292,330,198,142,95,18,295,126,131,339,171,347,199,244,428,383,43,315,353,91,289,466,178,425,112,420,85,159,360,241,300,295,285,310,76,69,297,155,416,333,416,226,262,63,445,77,151,368,406,171,13,198,30,446,142,329,245,505,238,352,113,485,296,337,507,91,437,366,511,414,46,78,399,283,106,202,494,380,479,522,479,438,21,130,293,422,440,71,321,446,358,39,447,427,6,33,429,324,76,396,444,519,159,45,403,243,251,373,251,23,140,7,356,194,499,276,251,311,10,147,30,276,430,151,519,36,354,162,451,524,312,447,77,170,428,23,283,249,466,39,58,424,68,481,2,173,179,382,334,430,84,151,293,95,522,358,505,63,524,143,119,325,401,6,361,284,418,169,256,221,330,23,72,185,376,515,84,319,27,66,497]) == 99

if __name__ == '__main__':
    s = Solution()
    print(s.findContentChildren([1,2,3], [1,1]))
    print(s.findContentChildren([1,2], [1,2,3]))

相关文章

  • Day68 分发饼干

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃...

  • 分发饼干

    题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有...

  • 【LeetCode】分发饼干

    题目描述: 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ...

  • 455-分发饼干

    分发饼干 题目 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 ...

  • 455. 分发饼干

    题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,...

  • 455. 分发饼干

    从今天开始,开始做贪心算法相关的题了,加油! 考虑的有这两点,当然解题思路也是这两点: 1 给一个孩子的饼干应当尽...

  • 455-分发饼干

    假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃...

  • LeetCode-分发饼干

    题目链接 => 戳这里 解析 这道题是典型的贪心算法,其实就是求局部最优解,这道题的每个局部其实就是要求用最小的饼...

  • 贪心一:分发饼干

    题目地址: https://leetcode-cn.com/problems/assign-cookies/[...

  • 贪心算法合集

    455. 分发饼干[https://leetcode-cn.com/problems/assign-cookies...

网友评论

      本文标题:Day68 分发饼干

      本文链接:https://www.haomeiwen.com/subject/sjsrektx.html