柠檬水找零
本题逻辑很简单,也是贪心算法的一个例子。
本题用到了map容器:
-
定义
map<typename1, typename2>mp;
使用map要确定映射前类型(键key)和映射后的类型(值value)。
注意:如果是字符串到整形的映射,必须使用string而不是char数组。 -
一些用途
需要建立字符(或字符串)与整数之间映射的题目,使用map可以减少代码量。
(用法如果后期遇到了再写)
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
map<int,int> cash;
for(int i=0;i<bills.size();i++){
if(bills[i]==5)
cash[5]++;
if(bills[i]==10){
if(cash[5]>=1){
cash[10]++;
cash[5]--;
}
else
return false;
}
if(bills[i]==20){
if(cash[10]>=1 && cash[5]>=1){
cash[10]--;
cash[5]--;
}
else if(cash[5]>2){
cash[5]-=3;
}
else return false;
}
}
return true;
}
};