安卓系统app,网站建设优化服务机构,wordpress 开头空格,帝国cms 网站地图插件买卖椰子水
Description 在海滩上#xff0c;一杯椰子水的售价为5元。一名顾客一次购买一杯椰子水#xff08;按照bills支付的顺序#xff09;。 每位顾客购买椰子水时#xff0c;可能向你支付 5 元、10 元或 20 元。你必须给每个顾客正确找零#xff0c;对于支付 5 元的…买卖椰子水
Description 在海滩上一杯椰子水的售价为5元。一名顾客一次购买一杯椰子水按照bills支付的顺序。 每位顾客购买椰子水时可能向你支付 5 元、10 元或 20 元。你必须给每个顾客正确找零对于支付 5 元的客户你无需找零对于支付 10 元的客户你需要给客户找零 5 元对于支付 20 元的客户你需要找零 15 元。 注意一开始你手头没有任何零钱。 给你一个整数数组 bills其中 bills[i] 是第 i 位顾客付的账。如果你能给每个顾客正确找零返回true否则返回false. 提示 11 ≤ bills.length ≤ 10^5 2bills[i] 不是5就是10或是20 Input 第一行输入顾客的数量n1 ≤ n ≤ 10^5 第二行按照顾客购买的先后顺序输入顾客支付的现金只能为5/10/20中间用空格隔开 如 5 5 5 5 10 20 Output 返回是否能给每个顾客正确找零 true/false Sample 代码
import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);// 输入顾客数量int n scanner.nextInt();// 输入顾客支付的现金int[] bills new int[n];for (int i 0; i n; i) {bills[i] scanner.nextInt();}// 返回结果boolean result sellingCoconutWater(bills);System.out.println(result);}public static boolean sellingCoconutWater(int[] bills) {int five 0;int ten 0;int twenty 0;for(int i 0;ibills.length;i){if(bills[i]5){five;}else if(bills[i]10){if(five0){return false;}else {five--;ten;}}else {if(ten0five3){return false;} else if (ten0five3) {five-3;twenty;} else if (ten0five0) {return false;} else if (ten0five0) {ten--;five--;}}}return true;}
}思路 贪心法 每次支付5元直接five 支付10元five- -,ten 支付20时先给10元再给5元只有只剩5元钞票才全部给5元