长沙做网站微联讯点不错,带会员中心 wordpress 主题,龙华营销型网站建设公司,上海网站建设最佳方案今日题目#xff1a;leetcode860
题目链接#xff1a;点击跳转题目 分析#xff1a; 顾客只会给三种面值#xff1a;5、10、20#xff0c;先分类讨论 当收到5美元时#xff1a;不用找零#xff0c;面值5张数1当收到10美元时#xff1a;找零5美元#xff0c;面值5张数…今日题目leetcode860
题目链接点击跳转题目 分析 顾客只会给三种面值5、10、20先分类讨论 当收到5美元时不用找零面值5张数1当收到10美元时找零5美元面值5张数-1、面值10张数1当收到20美元时找零15美元两种情况 一张10美元 、 一张5美元三张5美元 对于收到20美元时该以什么为评判标准来选择用哪一种找零方式呢 纵观三种情况收到10、20美元时都会用到5美元而10美元只有收到20美元时才可能使用 贪心思路为了能尽可能多的正确找零所以当收到20美元时尽量以105的方式找零除非没有10没有再不得以用三张5美元因为5美元的找零作用很大 代码
class Solution {
public:bool lemonadeChange(vectorint bills) {int five_nums 0;int ten_nums 0;for(auto x : bills){if(x 5) {five_nums;continue;}if(x 10) {ten_nums;if(five_nums 0) five_nums--;else return false;}if(x 20){if(five_nums 0 ten_nums 0){five_nums--;ten_nums--;}else if(ten_nums 0 five_nums 3){five_nums - 3;}else return false;}}return true;}
};