有一列fruit,每個(gè)fruit有一個(gè)label,fruit[i],有兩個(gè)籃子,每個(gè)籃子只能取相同的fruit,問連續(xù)最多可以取多少fruit
sliding window+Counter的又一應(yīng)用
1 #904
2 #Runtime: 932 ms (Beats 33.9%)
3 #Memory: 19.1 MB (Beats 84.36%)
4
5 class Solution(object):
6 def totalFruit(self, fruits):
7 """
8 :type fruits: List[int]
9 :rtype: int
10 """
11 cur_fruit = Counter()
12 ans, l = 0, 0
13 for r in range(len(fruits)):
14 cur_fruit[fruits[r]] += 1
15 if len(cur_fruit) > 2:
16 cur_fruit[fruits[l]] -= 1
17 if cur_fruit[fruits[l]] == 0:
18 cur_fruit.pop(fruits[l])
19 l += 1
20 ans = max(ans, r - l + 1)
21 return ans