您的位置:首页 > 教育 > 培训 > 开发公司股权重组协议书_临沂做网站公司_长沙关键词优化方法_西安seo网站关键词

开发公司股权重组协议书_临沂做网站公司_长沙关键词优化方法_西安seo网站关键词

2025/4/30 0:48:12 来源:https://blog.csdn.net/qq_29248103/article/details/147562199  浏览:    关键词:开发公司股权重组协议书_临沂做网站公司_长沙关键词优化方法_西安seo网站关键词
开发公司股权重组协议书_临沂做网站公司_长沙关键词优化方法_西安seo网站关键词

3392. 统计符合条件长度为 3 的子数组数目

问题

在这里插入图片描述

问题分析

统计符合条件的长度为 3 的子数组数目。具体条件是:子数组的第一个数和第三个数的和恰好为第二个数的一半。

思路

遍历数组:由于子数组长度固定为 3,我们可以通过遍历数组来检查每个长度为 3 的子数组是否满足条件。
检查条件:对于每个子数组 [nums[i], nums[i+1], nums[i+2]],检查是否满足 nums[i] + nums[i+2] == nums[i+1] / 2。
计数:如果满足条件,则计数器加 1。

代码

def count_good_subarrays(nums):count = 0n = len(nums)# 遍历数组,检查每个长度为 3 的子数组for i in range(n - 2):# 检查条件:第一个数和第三个数的和恰好为第二个数的一半if nums[i] + nums[i + 2] == nums[i + 1] / 2:count += 1return count

复杂度分析

时间复杂度:算法的时间复杂度为 (O(n)),其中 (n) 是数组 nums 的长度。这是因为在最坏情况下,算法需要遍历数组一次,并对每个长度为 3 的子数组进行常数时间的检查。
空间复杂度:算法的空间复杂度为 (O(1)),因为只使用了常数级的额外空间。

学习

定义 countSubarrays 方法:
def countSubarrays(self, nums: List[int]) -> int::定义一个方法 countSubarrays,接受一个整数列表 nums 作为参数,并返回一个整数。
ans = 0:初始化计数器 ans 为 0,用于记录满足条件的子数组数量。
n = len(nums):获取数组 nums 的长度。
遍历数组:
for i in range(n - 2)::遍历数组,确保每次检查的子数组长度为 3。
条件检查:
if nums[i] + nums[i + 2] == nums[i + 1] / 2::检查当前子数组是否满足题目要求,即第一个数和第三个数的和恰好为第二个数的一半。
计数:
ans += 1:如果满足条件,计数器 ans 加 1。
返回结果:
return ans:方法最后返回计数器 ans 的值。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com