leetcode860. 柠檬水找零

解题思路

硬模拟

代码

class Solution {
    public boolean lemonadeChange(int[] bills) {
        HashMap<Integer, Integer> m = new HashMap<>();
        m.put(5, 0);
        m.put(10, 0);
        m.put(20, 0);
        for (int i = 0; i < bills.length; i++) {
            if (bills[i] == 5) {
                m.put(5, m.get(5) + 1);
            } else if (bills[i] == 10) {
                if (m.get(5) <= 0) return false;
                else {
                    m.put(5,m.get(5)-1);
                    m.put(10, m.get(10) + 1);
                }
            } else if (bills[i] == 20) {
                if (!(m.get(5) >= 3 || (m.get(5) >= 1 && m.get(10) >= 1))) return false;
                else {
                    if (m.get(10) >= 1 && m.get(5) >= 1) {
                        m.put(10, m.get(10) - 1);
                        m.put(5, m.get(5) - 1);
                    }else{
                        m.put(5,m.get(5)-3);
                    }
                    m.put(20,m.get(20)+1);
                }
            }
        }
        return true;
    }
}
posted @ 2020-12-11 11:13  void-white  阅读(68)  评论(0)    收藏  举报