#include<vector>
#include<algorithm>
class Solution {
public:
int find(std::vector<int>& q, std::vector<int>& s) //这里的& 是引用的意思
{
std::sort(q.begin(), q.end()); //排序
std::sort(s.begin(), s.end());
int child = 0;
int cookie = 0;
while (child < q.size() && cookie < s.size()) //停止条件
{
if (q[child] < s[cookie]) {
child++;
}
cookie++;
}
return child;
}
};
``这题涉及贪心算法;所谓的贪心算法,就是从最优出发,比如这题的分饼干,可能有多种方案,而我们要做的是选择的方案对后面的影响最小;先按从大到小排列好,然后利用两个指针,同一方向从两个数组出发遍历,符合条件的就child++,不符合就下一个元素,直到两个数组其中一个的末尾
(vector被认为是一个容器,因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据;在java中有向量的作用)
Assign Cookies
最新推荐文章于 2020-11-23 10:52:12 发布