欢迎光临
我们一直在努力

目标整数

"""
目标整数
给定一个整数数组和一个目标整数,
统计该数组中和为目标整数的子数组的个数。
要求:子数组是数组中元素的连续非空序列。
"""

def sub_array_count(nums, target):
    """
    计算数组中和为target的子数组数量。

    :param nums: 输入的整数数组
    :param target: 目标和
    :return: 和为target的子数组数量
    """
    # 初始化子数组计数器
    count = 0
    # 初始化当前子数组和
    sigma = 0
    # 初始化哈希表,用于存储当前和的出现次数,初始情况为0出现1次
    ht = {0: 1}
    # 遍历数组中的每个元素
    for i in nums:
        # 更新当前子数组和
        sigma += i
        # 如果当前和与目标和的差在哈希表中,说明找到了一个和为target的子数组
        if sigma - target in ht:
            # 更新计数器
            count += ht.get(sigma - target)
        # 更新哈希表中当前和的出现次数
        if sigma in ht:
            ht[sigma] = ht.get(sigma) + 1
        else:
            ht[sigma] = 1
    # 返回和为target的子数组数量
    return count

# 调用函数并打印结果
print(sub_array_count([5, 6, 9, 4, -1, 3, 6, 5], 9))
赞(0) 打赏
未经允许不得转载:创想未来 » 目标整数

评论 抢沙发

评论前必须登录!

 

更好的Python学习

支持快讯、专题、百度收录推送、人机验证、多级分类筛选器,适用于垂直站点、科技博客、个人站,扁平化设计、简洁白色、超多功能配置、会员中心、直达链接、文章图片弹窗、自动缩略图等...

联系我们联系我们

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册