前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode-贪心算法

LeetCode-贪心算法

作者头像
LittlePanger
发布2020-04-14 15:54:39
3470
发布2020-04-14 15:54:39
举报

贪心算法

保证每次操作都是局部最优的,并且最后得到的结果是全局最优的。

455. 分发饼干

455. 分发饼干

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

示例

代码语言:javascript
复制
输入: [1,2,3], [1,1]
输出: 1
解释: 
你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。
所以你应该输出1。

输入: [1,2], [1,2,3]
输出: 2
解释: 
你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。
你拥有的饼干数量和尺寸都足以让所有孩子满足。
所以你应该输出2.

解法

贪心问题。优先满足胃口小的小朋友的需求。

  1. 对 g 和 s 升序排序
  2. 初始化两个指针分别指向 g 和 s 初始位置
  3. 对比 g[i] 和 s[j] g[i] <= s[j]:饼干满足胃口,孩子指针右移 g[i] > s[j]:无法满足胃口 无论满不满足胃口,都要右移饼干指针

最后返回的就是小孩的指针移动的次数

代码语言:javascript
复制
class Solution:
    def findContentChildren(self, g: List[int], s: List[int]) -> int:
        g, s = sorted(g), sorted(s)
        p1, p2 = 0, 0
        while p1 < len(g) and p2 < len(s):
            if g[p1] <= s[p2]:
                p1 += 1
            p2 += 1
        return p1

435. 无重叠区间

435. 无重叠区间

给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。

示例

代码语言:javascript
复制
输入: [ [1,2], [2,3], [3,4], [1,3] ]
输出: 1
解释: 移除 [1,3] 后,剩下的区间没有重叠。

输入: [ [1,2], [1,2], [1,2] ]
输出: 2
解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。

输入: [ [1,2], [2,3] ]
输出: 0
解释: 你不需要移除任何区间,因为它们已经是无重叠的了。

解法

按区间的结尾进行排序,每次选择结尾最小,并且和前一个区间不重叠的区间。

代码语言:javascript
复制
class Solution:
    def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
        if not intervals:
            return 0
        intervals = sorted(intervals,key=lambda x:x[-1])
        curr  = 0
        count = 1
        for i in range(1, len(intervals)):
            if intervals[curr][1] <= intervals[i][0]:
                count += 1
                curr = i
        return len(intervals)-count

452. 用最少数量的箭引爆气球

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 贪心算法
    • 455. 分发饼干
      • 435. 无重叠区间
        • 452. 用最少数量的箭引爆气球
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档