目录
Leecode 406. Queue Reconstruction by Height
Leecode 452. Minimum Number of Arrows to Burst Balloons
Leecode 860. Lemonade Change
题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目类型:贪心
实际上是一个模拟题,贪心体现在:有10块的话,就先用10快的。
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
unordered_map<int, int> ma;
for (auto &it : bills) {
if (it == 5) ma[5]++;
else if (it == 10) {
if (ma[5] == 0) return false;
ma[5]--;
ma[10]++;
}
else {
// 如果有10块就先用10块
if (ma[10] > 0 && ma[5] > 0) {
ma[10]--;
ma[5]--;
}
else if (ma[5] > 2) ma[5] -= 3;
else return false;
}
}
return true;
}
};
Leecode 406. Queue Reconstruction by Height
题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目类型:贪心
先考虑身高(从大到小:为了保证后序的插入过程中,维护k的有序性)
class Solution {
private:
bool static cmp(const vector<int>& a, const vector<int>& b) {
if (a[0] == b[0]) return a[1] < b[1];
return a[0] > b[0];
}
public:
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
// 先按照身高从大到小排序
// 好处是:之后再按照k来插入时,可以防止出现错误,因为往前插入肯定是比当前身高要小的
sort(people.begin(), people.end(), cmp);
vector<vector<int>> ans;
for (int i = 0; i < people.size(); ++i) {
ans.insert(ans.begin() + people[i][1], people[i]);
}
return ans;
}
};
Leecode 452. Minimum Number of Arrows to Burst Balloons
题目地址:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
题目类型:贪心
class Solution {
private:
bool static cmp(const vector<int>& a, const vector<int>& b) {
if (a[0] == b[0]) return a[1] < b[1];
return a[0] > b[0];
}
public:
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
// 先按照身高从大到小排序
// 好处是:之后再按照k来插入时,可以防止出现错误,因为往前插入肯定是比当前身高要小的
sort(people.begin(), people.end(), cmp);
vector<vector<int>> ans;av
for (int i = 0; i < people.size(); ++i) {
ans.insert(ans.begin() + people[i][1], people[i]);
}
return ans;
}
};