Subarray Sum Equals K

给一个数组, 问里面有几个subarray, 的和是k.

这个题是问有几个subarray, 我原来觉得[1]也是, 但是好像两个以上才算. 先算pre sum, 然后就知道区间的sum, 查看是不是等于k即可.

class Solution {
    public int subarraySum(int[] nums, int k) {
        int[] pre = new int[nums.length + 1];
        int res = 0;
        for(int i = 1; i < nums.length + 1; i++) {
            pre[i] = pre[i-1] + nums[i - 1];
        }
        for(int i = 0; i < nums.length; i++) {
            for(int j = i + 1; j < nums.length + 1; j++) {
                if(pre[j] - pre[i] == k) {
                    res++;
                }
            }
        }
        return res;
    }
}