美文网首页LeetCode笔记
最大子数组之和为k

最大子数组之和为k

作者: 只为此心无垠 | 来源:发表于2018-04-22 15:17 被阅读22次

题目地址
创建一个hash表,其key等于数组中遍历过的数的和,其value等于当前遍历的数在数组中的下标。用sum保存遍历过的数的总和,len保存最大长度;依次从数组的开头遍历,如果sum-k的值在hash表中有记录,则len更新为i-map[sum-k]和len的较大值,如果不存在就将{sum,i}加入map中,以便下次查询。

def maxSubArrayLen(self, nums, k):
        hash = {0:0}
        sum = 0
        max_len = 0
        #lookingfor 代表当前位置之前的和
        for i in range(1,len(nums)+1):
            sum += nums[i-1]
            lookingfor = sum - k 
            if hash.has_key(lookingfor):
                length = i - hash[lookingfor]
                max_len = max(max_len, length)
            if hash.has_key(sum) != True:
                hash[sum] = i
                
        return max_len

相关文章

  • LeetCode #1191 K-Concatenation M

    1191 K-Concatenation Maximum Sum K 次串联后最大子数组之和 Descriptio...

  • 最大子数组之和为k

    题目地址创建一个hash表,其key等于数组中遍历过的数的和,其value等于当前遍历的数在数组中的下标。用sum...

  • Leetcode-Medium 152. Maximum Pro

    题目描述 给定一个整数数组nums(有正有负),求最大子数组乘积 思路 求最大子数组乘积问题是求最大子数组之和演变...

  • 最大子数组之和

    问题: 输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组。 描述: 输入的数组为1...

  • PAT 7-1 最大子列和问题 (C语言实现)

    题目描述 给定K个整数组成的序列,“连续子列”被定义为,其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列...

  • k数之和

    求解k数之和,必须要保证数组有序,方便后面跳过重复的数字,当k是2的时候,退化为求解2数之和

  • 求连续最大子数组之和

    一道面试题. 题目: 一维数组里有负数又有整数,求子数组连续求和最大.如[1, 2, -4, 2, 3], 连续...

  • 动态规划

    求最大子数组,最大子乘积

  • 刷算法题:求一个序列的最大子序列之和!

    求一个序列的最大子序列之和! 不是求最大子序列之和嘛!我脑子居然就一直关注到了最大子序列上去了,导致我想着实现代码...

  • LeetCode-152-乘积最大子数组

    LeetCode-152-乘积最大子数组 152. 乘积最大子数组[https://leetcode-cn.com...

网友评论

    本文标题:最大子数组之和为k

    本文链接:https://www.haomeiwen.com/subject/ifkclftx.html