560. 和為 K 的子數組
前綴和的知識。
如果要求i~j下標之間的元素和,用前綴和的話,應該是b[j] - b[i-1],i處的值也應該包括。
所以這個題,前綴和數組就要比原數組整體向后平移一個單元格,不然在求0~n的和的時候沒法取到-1。
class Solution {public int subarraySum(int[] nums, int k) {int[] b = new int[nums.length+1]; //前綴和數組b[0] = 0;int res = 0;for(int i=0;i <nums.length; i++) {b[i+1] = b[i] + nums[i];if(nums[i] == k)res ++;}System.out.println();for(int i=1;i<b.length; i++){for(int j=i+1; j<b.length;j++) {if(b[j]-b[i-1] == k){res ++;} }}return res;}
}