最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • LeetCode题解:860. 柠檬水找零,模拟情境,JavaScript,详细注释

    正文概述 掘金(LeeChen)   2020-11-29   501

    原题链接:leetcode-cn.com/problems/le…

    解题思路:

    1. 首先梳理一下题意:
      • 零钱只有5元和10元两种。
      • 该题只关心是否足够找零,因此收入时只需要考虑收入的零钱数量即可,至于赚了多少钱无需考虑。
    2. 每次收入都对应3种可能情况,以此模拟找零过程:
      • 收入5元,此时5元零钱数量加1。
      • 收入10元,此时10元零钱数量加1,5元零钱数量减1。
      • 收入20元,由于5元零钱更加通用,因此若有10元零钱,则找零10元和5元。若没有10元零钱,则找零3张5元。
    3. 每次完成找零后,查看零钱数量是否为负,若是则表示零钱不够找零,返回false。
    4. 如果能正常退出循环,表示零钱数量都>=0,则返回true。
    /**
     * @param {number[]} bills
     * @return {boolean}
     */
    var lemonadeChange = function (bills) {
      let five = 0; // 统计5元零钱数量
      let ten = 0; // 统计10元零钱数量
    
      // 遍历bills,模拟收钱过程
      for (const bill of bills) {
        if (bill === 5) {
          // 如果收到5元钱,只需要收钱,无需找零,5元钱的数量加1
          five++;
        } else if (bill === 10) {
          // 如果收到10元,10元钱数量加1
          // 同时需要找零5元,5元钱数量减1
          ten++;
          five--;
        } else if (bill === 20) {
          // 如果收到20元,则需要找零15元,分为两种情况处理
          if (ten) {
            // 如果有10元零钱,则优先使用10元钱,10元钱数量减1
            ten--;
            // 找零10元后,还需要找零5元,5元钱数量减1
            five--;
          } else {
            // 如果没有10元零钱,则都使用5元找零,5元零钱减3
            five -= 3;
          }
        }
    
        // 如果经过找零后,零钱数量为负,表示零钱不足,无法找零
        if (five < 0 || ten < 0) {
          return false;
        }
      }
    
      // 如果能正常退出循环,表示零钱没有为负,零钱足够找零
      return true;
    };
    

    起源地下载网 » LeetCode题解:860. 柠檬水找零,模拟情境,JavaScript,详细注释

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元