一、滑动窗口(Sliding Window)
目的:减少while循环
二、力扣209题
class Solution(object):
def minSubArrayLen(self, target, nums):
"""
:type target: int
:type nums: List[int]
:rtype: int
"""
if len(nums) == 0:
return 0
res = len(nums) + 1
total = 0
i = 0
j = 0
while(j < len(nums)):
total = total + nums[j]
j += 1
while(total >= target):
res = min(res,j-i)
total = total - nums[i]
i += 1
if res == len(nums) + 1:
return 0
else:
return res
三、力扣1456题
class Solution(object):
def maxVowels(self, s, k):
"""
:type s: str
:type k: int
:rtype: int
"""
if len(s) == 0:
return 0
hashset = set(['a','o','e','i','u'])
count = 0
res = 0
for i in range(0,k):
if s[i] in hashset:
count += 1
res = max(res,count)
for i in range(k,len(s)):
if s[i-k] in hashset:
count -= 1
if s[i] in hashset:
count += 1
res = max(res,count)
return res