/**
* 射击气球
*/
int calShootBoolen(vector<pair<int, int>>& data)
{
if (data.size() < 2)
return 1;
std::sort(data.begin(), data.end(), [](auto&a, auto&b)->bool {return a.first < b.first; });
int shootNum = 1;
int shootBegin = data[0].first;
int shootEnd = data[0].second;
for (int i = 1; i < data.size();i++)
{
/** 注意等于号必须有,要不当首尾重合的时候就回计算错了 */
if (data[i].first <= shootEnd)
{
shootBegin = data[i].first;
if (data[i].second < shootEnd)
{
shootEnd = data[i].second;
}
}
else {
shootBegin = data[i].first;
shootEnd = data[i].second;
shootNum++;
}
}
return shootNum;
}
贪心算法之射击气球
最新推荐文章于 2022-07-01 21:00:47 发布