// The API isBadVersion is defined for you.
// bool isBadVersion(int version);
class Solution {
public:
int firstBadVersion(int n) {
int left = 1;
int right = n;
while(left < right)
{
int mid = left + (right-left) / 2;
if (isBadVersion(mid)) right = mid;
else left = mid+1;
}
return left;
}
};
class Solution {
public:
int findContentChildren(vector<int>& g, vector<int>& s) {
sort(g.begin(),g.end());
sort(s.begin(),s.end());
reverse(g.begin(),g.end());
reverse(s.begin(),s.end());
int result = 0;
int j = 0;
for(int i = 0;i<g.size();i++)
{
if(j < s.size() && s[j] >= g[i])
{
j++;
result++;
}
}
return result;
}
int partion(vector<int> &v,int left,int right)
{
int tmp = v[left];
while(left < right)
{
while(left < right && v[right] <= tmp) right--;
v[left] = v[right];
while(left < right && v[left] >= tmp) left++;
v[right] = v[left];
}
v[left] = tmp;
return tmp;
}
void quicksort(vector<int> &v,int start,int end)
{
if(start < end)
{
int mid = partion(v,start,end);
quicksort(v,start,mid-1);
quicksort(v,mid+1,end);
}
}
};