Subarray Sum Equals K
给一个数组, 问里面有几个subarray, 的和是k.
这个题是问有几个subarray, 我原来觉得[1]也是, 但是好像两个以上才算. 先算pre sum, 然后就知道区间的sum, 查看是不是等于k即可.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
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; } } |