• 452 Minimum Number of Arrows to Burst Balloons 用最少数量的箭引爆气球


    在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。
    一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足  xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可以无限地前进。我们想找到使得所有气球全部被引爆,所需的弓箭的最小数量。
    Example:
    输入:
    [[10,16], [2,8], [1,6], [7,12]]
    输出:
    2
    解释:
    对于该样例,我们可以在x = 6(射爆[2,8],[1,6]两个气球)和 x = 11(射爆另外两个气球)。
    详见:https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/description/

    C++:

    class Solution {
    public:
        int findMinArrowShots(vector<pair<int, int>>& points) 
        {
            if (points.empty()) 
            {
                return 0;
            }
            sort(points.begin(), points.end());
            int res = 1, end = points[0].second;
            for (int i = 1; i < points.size(); ++i) 
            {
                if (points[i].first <= end)
                {
                    end = min(end, points[i].second);
                }
                else 
                {
                    ++res;
                    end = points[i].second;
                }
            }
            return res;
        }
    };
    

     参考:https://www.cnblogs.com/grandyang/p/6050562.html

  • 相关阅读:
    第四周作业
    RHEL6+GFS2+MYSQL高可用
    第三周作业
    第二周作业
    centos7 安装redis 开机启动
    无线网卡连接网络后共享给本地有线网卡使用(Win10)
    第一周作业
    2019.8.13加入博客园
    智力题
    Python入门基础学习(模块,包)
  • 原文地址:https://www.cnblogs.com/xidian2014/p/8901239.html
Copyright © 2020-2023  润新知