本文主要是介绍★560. 和为 K 的子数组(自己做出来了),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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;}
}
这篇关于★560. 和为 K 的子数组(自己做出来了)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!