★560. 和为 K 的子数组(自己做出来了)
2023-12-13 15:17:51
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;
}
}
文章来源:https://blog.csdn.net/qq_45895217/article/details/134828751
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!