java 325.最大大小子阵列总和等于k(#)。java

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 325.最大大小子阵列总和等于k(#)。java相关的知识,希望对你有一定的参考价值。

public class Solution {
    public int maxSubArrayLen(int[] nums, int k) {
        if (nums == null || nums.length < 1) return 0;
        int len = nums.length;
        int[] prefixSum = new int[len + 1];
        for (int i = 1; i <= len; i++) {
            prefixSum[i] = nums[i - 1] + prefixSum[i - 1];
        }
        Map<Integer, Integer> map = new HashMap<>();
        map.put(0, 0);
        int res = 0;
        for (int i = 1; i <= len; i++) {
            if (map.containsKey(prefixSum[i] - k)) {
                res = Math.max(res, i - map.get(prefixSum[i] - k));
            }
            if (!map.containsKey(prefixSum[i])) // keep only 1st duplicate as we want first index as left as possible
                map.put(prefixSum[i], i);
        }
        return res;
    }
}

以上是关于java 325.最大大小子阵列总和等于k(#)。java的主要内容,如果未能解决你的问题,请参考以下文章

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java

java 325.最大大小子阵列总和等于k(#)。java

java 最大尺寸子阵列和等于k(和为k的最长连续子数组)

动态规划算法:硬币的最大总和(小于或等于k)