LeetCode___860.柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。

顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。

注意,一开始你手头没有任何零钱。

如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

--------------------------------------分----------------------------------------------------------------割-----------------------------------

注意题中已经规定了支付的面值为5,10,20美元,就可以分析:5美元不需要找零;10美元找5美元的零;20美元:①找一张10美元和一张五美元的零,②找三张5美元的零。所以只需要对bills进行遍历并判断bills[i]的值就可以解决:

public static void main(String[] fivergs) {
		int [] fiverr = {5,5,10,10,20};

		System.out.println(lemonfivedeChfivenge(fiverr));
		
	}
	
	public static boolean lemonfivedeChfivenge(int[] bills){
		int five = 0;	//定义五美元和10美元钱币的个数
		int ten = 0;
		for(int i = 0;i < bills.length;i++){
			if(bills[i] == 5){	//如果顾客给的是五美元就不找零,五美元个数就加1
				five++;
			}else if (bills[i] == 10 && five > 0){ //如果给的10美元就找五美元的零,五美元减,10美元加
				five--;
				ten++;
			}else if(bills[i] == 20 && five > 0 && ten > 0){	//如果给的20美元,就找一张10和5美元
				five--;
				ten--;
			}else if(bills[i] == 20 & five > 3){	//如果给的20就找三张5美元
				five -= 3;
			}else{
				return false;
			}
		}
		return true;
	}

猜你喜欢

转载自blog.csdn.net/DJGXGG/article/details/88074307