首页 > 其他分享 >刷刷刷 Day 31 | 455. 分发饼干

刷刷刷 Day 31 | 455. 分发饼干

时间:2023-02-06 09:00:47浏览次数:49  
标签:index 饼干 胃口 孩子 31 455 int 满足 Day

455. 分发饼干

LeetCode题目要求

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

对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。

示例

输入: g = [1,2,3], s = [1,1]
输出: 1
解释: 
你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。
所以你应该输出1。
解题思路

想要尽可能满足更多的孩子迟到饼干,通过对题目的分析,要达到全局最优,可先保证局部最优解,就是让小饼干满足小胃口,大饼干满足大胃口。这里很类似于田忌赛马。
可以使用贪心策略,对两个数组排序,然后从前往后遍历饼干,让小饼干满足小胃口;当然也可以从后往前遍历胃口,让大饼干满足大胃口

上代码

class Solution {
    public int findContentChildren(int[] g, int[] s) {
        Arrays.sort(g);
        Arrays.sort(s);
        int res = 0;
        // g-胃口 s-饼干尺寸
        int index = 0;
        for (int i = 0; i < s.length && index < g.length; i++) {
            if (g[index] <= s[i]) {
                res++;
                index++;
            }
        }
        return res;
    }
}
重难点

理解贪心策略,满足局部最优,从而达到全局最优。

附:学习资料链接

标签:index,饼干,胃口,孩子,31,455,int,满足,Day
From: https://www.cnblogs.com/blacksonny/p/17094382.html

相关文章

  • [LeetCode] 2331. Evaluate Boolean Binary Tree
    Youaregiventhe root ofa fullbinarytree withthefollowingproperties:Leafnodes haveeitherthevalue 0 or 1,where 0 represents False and......
  • day01-2-@RequestMapping
    @RequestMapping1.基本使用@RequestMapping注解可以指定控制器(处理器)的某个方法的请求url2.@RequestMapping其他使用方式2.1修饰方法和类@RequestMapping注解可以......
  • day02-REST和SpringMVC映射请求数据
    REST和SpringMVC映射请求数据7.REST-优雅的url请求风格7.1REST基本介绍REST风格详细介绍REST:即RepresentationalStateTransfer,表述性状态传递。它结构清晰,同时......
  • drf day05 drf请求、响应编码格式,GenericAPIView以及五个视图拓展类
    一、ModelSerializer补充二、序列化类校验源码分析(了解)三、断言———assert​ 断言的定义:断言,作用的判断,断定一个变量必须是xx,如果不是就报错#assert的断言用法na......
  • 《分布式技术原理与算法解析》学习笔记Day02
    分布式系统发展历程分布式的发展过程经历了三个阶段:单机模式(单兵模式)数据并行或者数据分布式(游击队模式)任务并行或者任务分布式(集团军模式)什么是单机模式,它的优缺点......
  • 代码随想录算法训练营Day5 数组、链表复习
    数组部分数组最重要的思维方式是双指针的使用。快慢指针在进行元素移除和元素操作时会使用两个for循环嵌套,此时时间复杂度为O(n²)。在for循环中通过双指针(快慢指针)的使......
  • hdu-1312-Red and Black
    RedandBlackTimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):13464    AcceptedSubmission(s):......
  • Day2——初识C,那些点滴事件
    #include<stdio.h>//包含头文件#defineP11//宏定义intmain()//执行操作入口{printf("haha\n");......
  • day21
    1、235.二叉搜索树的最近公共祖先classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){if(root.val>p.va......
  • day03
    Java程序运行机制Java既是编译型的也是解释型的语言,但总的来说Java更加接近于解释型语言编译型(c,c++)在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码转......