class Solution {
public:
int minTaps(int n, vector<int>& ranges) {
vector<pair<int,int>> nap;
for(int i=0;i<ranges.size();i++){
nap.push_back(make_pair(max(0,i-ranges[i]),min(n,i+ranges[i])));
}
sort(nap.begin(),nap.end());
int R = 0;
int mxR = 0;
int ans = 1;
for(int i=0;i<nap.size();i++){
if(nap[i].first > R){
if(nap[i].first > mxR){ return -1; }
R = mxR;
ans++;
}
mxR = max(mxR,nap[i].second);
if(mxR == n) return ans;
}
return -1;
}
};
No.181 - LeetCode1326 - (经典)区间覆盖
最新推荐文章于 2024-03-26 22:36:59 发布
本文详细解析LeetCode第1326题,探讨如何解决经典区间覆盖问题,通过实例展示算法思路和实现过程,帮助读者深入理解区间问题的解决策略。

1795

被折叠的 条评论
为什么被折叠?



