题目
java实现
class Solution {
public boolean lemonadeChange(int[] bills) {
int[] money=new int[2];
if(bills[0]!=5)
return false;
for(int i=0;i<bills.length;i++){
if(bills[i]==5)
money[0]++;
if(bills[i]== 10){
if(money[0] > 0){
money[0]--;
money[1]++;
}
else
return false;
}
if(bills[i]==20){
if(money[0]>2||(money[0]>0&&money[1]>0)){
if(money[0]>0&&money[1]>0){
money[0]--;
money[1]--;
}
else{
money[0]--;
money[0]--;
money[0]--;
}
}
else
return false;
}
}
return true;
}
}
C++实现
class Solution {
public:
bool lemonadeChange(vector<int>& bills) {
int money[2]={0,0};
if(bills[0]!=5)
return false;
for(int i=0;i<bills.size();i++){
if(bills[i]==5)
money[0]++;
if(bills[i]== 10){
if(money[0] > 0){
money[0]--;
money[1]++;
}
else
return false;
}
if(bills[i]==20){
if(money[0]>2||(money[0]>0&&money[1]>0)){
if(money[0]>0&&money[1]>0){
money[0]--;
money[1]--;
}
else{
money[0]--;
money[0]--;
money[0]--;
}
}
else
return false;
}
}
return true;
}
};
所学知识汇总
写惯了java在写c++的时候意外发现忘了c++数组大小怎么获取,突然想起来java有可以获得数组大小的函数,但是c++没有,因此可以自己写函数,或者用 sizeof(V)/sizeof(V[0]) 可以计算得到数组V中元素的个数。
例如:V[5] = {1,2,3,4,5};
num = sizeof(V) / sizeof(V[0]);
这意思就是获取整个数组所占的字节数,然后除以单个类型的字节数。
即可获取数组有几个元素.
但是题目里直接用了vector 因此可使用bills.size()