贪心3
- 加油站
class Solution {
public:
int canCompleteCircuit(vector<int>& gas, vector<int>& cost) {
int n = gas.size();
int ans = 0;
int min_s = 0, s = 0;
for(int i = 0; i < n; i++)
{
s += gas[i] - cost[i];
if(s < min_s)
{
min_s = s;
ans = i + 1;
}
}
return s < 0 ? -1:ans;
}
};
```、
135. 分发糖果
class Solution {
public:
int candy(vector
int n = ratings.size();
// int cs[n];
// memset(cs, 0, sizeof(cs));
int res = 0;
vector
for(int i = 0;i < n - 1; ++i)
{
if(ratings[i] < ratings[i+1])
cs[i + 1] = cs[i] + 1;
}
for(int i = n - 1;i > 0; --i)
{
if(ratings[i] < ratings[i-1])
cs[i - 1] = max(cs[i]+1, cs[i - 1]);
}
for(int i = 0; i < n; ++i)
{
res += cs[i];
}
return res ;
}
};
860. 柠檬水找零
class Solution {
public:
bool lemonadeChange(vector
vector<int> a(2, 0);
for(int i = 0; i < bills.size(); i++)
{
if(bills[i] == 5)
a[0]++;
else if(bills[i] == 10)
{
if(a[0] == 0)
return false;
else
{
a[1]++;
a[0]--;
}
}
else if(bills[i] == 20)
{
if(a[1] > 0 && a[0] > 0)
{
a[1]--;
a[0]--;
}
else if(a[0] >= 3)
{
a[0] -= 3;
}
else
return false;
}
}
return true;
}
};
406. 根据身高重建队列
class Solution {
public:
vector<vector
sort(people.begin(), people.end(), [](vector
if(a[0] == b[0])
return a[1] < b[1];
return a[0] > b[0];
});
vector<vector
for(int i = 0;i < people.size(); i++)
{
if(people[i][1] > i)
ans.push_back(people[i]);
else
ans.insert(ans.begin() + people[i][1] ,people[i]);
}
return ans;
}
};

浙公网安备 33010602011771号