「LeetCode」455-分发饼干⚡️

简介: 「LeetCode」455-分发饼干⚡️

image.png

大家好,我是速冻鱼🐟,一条水系前端💦,喜欢花里胡哨💐,持续沙雕🌲,是隔壁寒草🌿的好兄弟。


欢迎小伙伴们加我微信:sudongyuer拉你进群,一起讨论,期待与大家共同成长🥂。


前言🌧️



算法,对前端人来说陌生又熟悉,很多时候我们都不会像后端工程师一样重视这项能力。但事实上,算法对每一个程序员来说,都有着不可撼动的地位。

因为开发的过程就是把实际问题转换成计算机可识别的指令,也就是《数据结构》里说的,「设计出数据结构,在施加以算法就行了」。


当然,学习也是有侧重点的,作为前端我们不需要像后端开发一样对算法全盘掌握,有些比较偏、不实用的类型和解法,只要稍做了解即可。


题目🦀



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.


提示:


  • 1 <= g.length <= 3 * 104
  • 0 <= s.length <= 3 * 104
  • 1 <= g[i], s[j] <= 231 - 1


解题思路🌵



  • 局部最优:既能满足孩子,还消耗最少。
  • 先将 “较小的饼干” 分给 “胃口最小” 的孩子。
  • 采用贪心算法


解题步骤🐂



  • 先对孩子数组和饼干数组进行升序排序。
  • 遍历饼干数组,当满足条件,孩子数➕1。


源码🔥



/**
 * @param {number[]} g
 * @param {number[]} s
 * @return {number}
 */
var findContentChildren = function(g, s) {
    const sortFn=(a,b)=>{
        return a-b
    }
    g.sort(sortFn);
    s.sort(sortFn);
    let j=0;
    for(let i=0;i<s.length;i++){
        if(s[i]>=g[j]){
            if(j===g.length){return;}
            j++
        }
    }
    return j
};

时间复杂度:O(n*log n)


空间复杂度:O(1)


结束语🌞



image.png


那么鱼鱼的LeetCode算法篇的「LeetCode」455-分发饼干⚡️就结束了,算法这个东西没有捷径,只能多写多练,多总结,文章的目的其实很简单,就是督促自己去完成算法练习并总结和输出,菜不菜不重要,但是热爱🔥,喜欢大家能够喜欢我的短文,也希望通过文章认识更多志同道合的朋友,如果你也喜欢折腾,欢迎加我好友,一起沙雕,一起进步

相关文章
|
6月前
|
Java
leetcode-455:分发饼干
leetcode-455:分发饼干
49 0
|
3月前
|
算法 Python
【Leetcode刷题Python】455.分发饼干
文章提供了解决LeetCode "分发饼干" 问题的Python实现代码,使用了排序和贪心算法。首先将孩子的胃口值和饼干的尺寸分别进行升序排序,然后通过双指针的方式遍历,尝试为每个孩子分配尺寸足够大的饼干,直到所有的孩子都得到满足或饼干分配完毕,返回满足的孩子数量的最大值。
20 2
|
5月前
|
存储 算法 数据可视化
如何使用多种算法解决LeetCode第135题——分发糖果问题
如何使用多种算法解决LeetCode第135题——分发糖果问题
|
5月前
|
算法
力扣经典150题第十五题:分发糖果
力扣经典150题第十五题:分发糖果
34 0
|
5月前
|
算法 机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
|
6月前
|
算法
leetcode代码记录(分发饼干
leetcode代码记录(分发饼干
36 0
|
6月前
|
索引
[经典力扣面试题]135. 分发糖果
[经典力扣面试题]135. 分发糖果
|
6月前
leetcode:455. 分发饼干
leetcode:455. 分发饼干
31 0
|
6月前
|
Java
leetcode-135:分发糖果
leetcode-135:分发糖果
48 0
|
6月前
|
算法 定位技术
六六力扣刷题贪心算法之分发饼干
六六力扣刷题贪心算法之分发饼干
58 0