Open lxw124 opened 4 years ago
这道题可以用动态规划,设置一个数组dp,长度为nums.length,第i个值就为数组的前i项和,然后先寻找数组中有没有等于k的数,在寻找数组之间的差有没等于k的
var subarraySum = function(nums, k) {
var dp=new Array(nums.length)
dp[0]=nums[0]
for(var i=1;i<nums.length;i++){
dp[i]=nums[i]+dp[i-1]
}
var count=0;
for(var i=0;i<dp.length;i++){
if(dp[i]==k){count++}
}
for(var i=0;i<dp.length-1;i++){
for(var j=i+1;j<dp.length;j++){
if(dp[j]-dp[i]===k){
count++;
}
}
}
return count;
}
给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
示例 1 :
输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。