1、求子数组的最大平均数,Leetcode643给定n个整数,找出平均数最大且长度为k的连续子数组,并输出该平均数。对于该题,可以先求第一个长度为3的数组的和,之后就可以从K开始移动数组,值+nums[i]-nums[i-k],不断记录和最大的值即可,代码参考如下:
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
start = 0
res = 0
n = len(nums)
for i in range(n):
if i > 0 and nums[i] <= nums[i-1]:
start = i
res = max(res, i-start+1)
return res
2、最长连续递增序列,Leetcode674给定一个未经排序的整数数组,找到最长且连续递增的子序列,并返回该子序列的长度。该题只需要当满足递增条件时不断向右移动指针,当出现不满足条件时,移动左指针至该下标,同时不断记录最大值即可,代码参考如下:
class Solution:
def findLengthOfLCIS(self, nums: List[int]) -> int:
start = 0
res = 0
n = len(nums)
for i in range(n):
if i > 0 and nums[i] <= nums[i-1]:
start = i
res = max(res, i-start+1)
return res