建设网站的主要流程有哪些,蓝色风格企业网站模板,ps设计网页,运城建设银行网站Problem: 2251. 花期内花的数目 2251. 花期内花的数目 思路解题方法Code 思路
看题目应该是一道比较经典的差分#xff0c;本来准备拿差分数组做的#xff0c;后来搂了一眼题解#xff0c;发现用二分的方法更简单
解题方法
此题有一种很简便的方法#xff0c;第i个人到… Problem: 2251. 花期内花的数目 2251. 花期内花的数目 思路解题方法Code 思路
看题目应该是一道比较经典的差分本来准备拿差分数组做的后来搂了一眼题解发现用二分的方法更简单
解题方法
此题有一种很简便的方法第i个人到达时间为people[i]所以我们不难找到在这个时间之前花期已经开始的花的数量即v1start people[i]同理我们也可以找到在这之前花期已经结束的花的数量即v2end people[i]由此不难得出花开数目即为v1-v2而上述思路中找到在某个时间点之前花期开始或者结束的数目我们在有序数组starts和ends内用二分查找即可很好的解决这个问题因此我们在处理好输入数据后还需要让starts和ends有序即可。
Code
class Solution {
public:vectorint fullBloomFlowers(vectorvectorint flowers, vectorint people) {vectorint ans;int n flowers.size();vectorint starts(n), ends(n);for(int i0;in;i){starts[i] flowers[i][0];ends[i] flowers[i][1];}sort(starts.begin(), starts.end());sort(ends.begin(), ends.end());int n2 people.size();for(int i0;in2;i){int v1 upper_bound(starts.begin(), starts.end(), people[i]) - starts.begin();int v2 lower_bound(ends.begin(), ends.end(), people[i]) - ends.begin();ans.push_back(v1-v2);}return ans;}
};