美文网首页
LeetCode 第560题:和为K的子数组

LeetCode 第560题:和为K的子数组

作者: 放开那个BUG | 来源:发表于2021-06-13 14:14 被阅读0次

1、前言

题目描述

2、思路

前缀和我倒是知道,但是用 hashmap 优化这个有点难。

3、代码

public class Q560_SubarraySum {

    public int subarraySum(int[] nums, int k) {
        if(nums == null || nums.length == 0){
            return 0;
        }

        int[] prefix = new int[nums.length + 1];
        for(int i = 1; i <= nums.length; i++){
            prefix[i] = prefix[i - 1] + nums[i - 1];
        }

        int count = 0;
        for(int i = 1; i < prefix.length; i++){
            for(int j = 0; j < i; j++){
                if(prefix[i] - prefix[j] == k){
                    count++;
                }
            }
        }

        return count;
    }


    public static void main(String[] args) {
        System.out.println(new Q560_SubarraySum().subarraySum(new int[] {1,1,1}, 2));
    }
}

相关文章

网友评论

      本文标题:LeetCode 第560题:和为K的子数组

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