LeetCode 860. Lemonade Change (柠檬水找零)

题目标签:Greedy

  当收到$5 时候,计数 five;

  当收到$10的时候,用 five 来找零;

  当收到$20的时候,先用 ten 来找零,如果没有,再用 five 来找零。

  如果过程中,five 小于 0了,说明不够钱来找零,失败。

 

Java Solution:

Runtime:  2 ms, faster than 81.80% 

Memory Usage: 42.1 MB, less than 7.69%

完成日期:02/15/2020

关键点:设置five, ten 计数

class Solution {
    public boolean lemonadeChange(int[] bills) {
        int five = 0, ten = 0;
        
        for(int b : bills) {
            if(b == 5) {
                five++;
            }
            else if(b == 10) {
                five--;
                ten++;
            }
            else if(b == 20) {
                if(ten > 0) { // use ten first
                    ten--;
                    five--;
                }
                else {
                    five -= 3;
                }
            }
            
            if(five < 0)
                return false;
        }
        
        return true;
    }
}

参考资料:LeetCode discuss

LeetCode 题目列表 - LeetCode Questions List

题目来源:https://leetcode.com/

posted @ 2020-02-16 01:30  Jimmy_Cheng  阅读(200)  评论(0编辑  收藏  举报