2025/8/24
LeetCode 455 分发糖果
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(), g.end());
sort(s.begin(), s.end());
int g_size = g.size();
int s_size = s.size();
int child_idx = 0;
int candy_idx = 0;
while(child_idx < g_size && candy_idx < s_size){
if(g[child_idx] > s[candy_idx]){
candy_idx++;
}else{
child_idx++;
candy_idx++;
}
}
return child_idx++;
}
};
LeetCode 135 分发糖果
class Solution {
public:
int candy(vector<int>& ratings) {
int n = ratings.size();
vector<int> res(n, 1);
// 先从左向右开始遍历
for(int i=1;i<n;i++){
if(ratings[i] > ratings[i-1]){
res[i] = res[i-1] + 1;
}
}
// 开始从右往左开始遍历
for(int i=n-1;i>0;i--){
if(ratings[i-1] > ratings[i]){
res[i-1] = max(res[i-1], res[i] + 1);
}
}
int result = accumulate(res.begin(), res.end(), 0);
return result;
}
};
LeetCode 435 无重叠区间
class Solution {
public:
int eraseOverlapIntervals(vector<vector<int>>& intervals) {
// 基于区间结尾进行排序
sort(intervals.begin(), intervals.end(),
[] (vector<int>& a, vector<int>& b){return a[1] < b[1];});
int res = 0;
int end_idx = intervals[0][1];
for(int i=1;i<intervals.size();i++){
if(intervals[i][0] < end_idx){
res++;
}else{
end_idx = intervals[i][1];
}
}
return res;
}
};