From b6a92c387ef7b15eec62f8fde2af01163d418325 Mon Sep 17 00:00:00 2001 From: Yuhao Ju Date: Fri, 16 Dec 2022 23:25:27 +0800 Subject: [PATCH] =?UTF-8?q?update=200860.=E6=9F=A0=E6=AA=AC=E6=B0=B4?= =?UTF-8?q?=E6=89=BE=E9=9B=B6:=20=E6=9B=BF=E6=8D=A2=20go=20=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0860.柠檬水找零.md | 45 +++++++++++--------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/problems/0860.柠檬水找零.md b/problems/0860.柠檬水找零.md index bc006f45..fc336eba 100644 --- a/problems/0860.柠檬水找零.md +++ b/problems/0860.柠檬水找零.md @@ -54,7 +54,7 @@ 这是前几天的leetcode每日一题,感觉不错,给大家讲一下。 -这道题目刚一看,可能会有点懵,这要怎么找零才能保证完整全部账单的找零呢? +这道题目刚一看,可能会有点懵,这要怎么找零才能保证完成全部账单的找零呢? **但仔细一琢磨就会发现,可供我们做判断的空间非常少!** @@ -179,38 +179,23 @@ class Solution: ### Go -```golang +```go func lemonadeChange(bills []int) bool { - //left表示还剩多少 下标0位5元的个数 ,下标1为10元的个数 - left:=[2]int{0,0} - //第一个元素不为5,直接退出 - if bills[0]!=5{ - return false - } - for i:=0;i0{ - left[0]-=1 - }else { + ten, five := 0, 0 + for i := 0; i < len(bills); i++ { + if bills[i] == 5 { + five++ + } else if bills[i] == 10 { + if five == 0 { return false } - } - if tmp==15{ - if left[1]>0&&left[0]>0{ - left[0]-=1 - left[1]-=1 - }else if left[1]==0&&left[0]>2{ - left[0]-=3 - }else{ + ten++; five-- + } else { + if ten >= 1 && five >= 1 { + ten--; five-- + } else if five >= 3 { + five -= 3 + } else { return false } }