int subarraySum(vector<int>& nums, int k) {
int count = 0;
int n = nums.size();
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
long long sum = 0;
for (int t = i; t <= j; t++) sum += nums[t];
if (sum == k) count++;
}
}
return count;
}
public int subarraySum(int[] nums, int k) {
int count = 0;
int n = nums.length;
for (int i = 0; i < n; i++) {
for (int j = i; j < n; j++) {
long sum = 0;
for (int t = i; t <= j; t++) sum += nums[t];
if (sum == k) count++;
}
}
return count;
}
def subarray_sum(nums, k):
count = 0
n = len(nums)
for i in range(n):
for j in range(i, n):
total = 0
for t in range(i, j + 1): total += nums[t]
if total == k: count += 1
return count
function subarraySum(nums: number[], k: number): number {
let count = 0;
for (let i = 0; i < nums.length; i++) {
for (let j = i; j < nums.length; j++) {
let sum = 0;
for (let t = i; t <= j; t++) sum += nums[t];
if (sum === k) count++;
}
}
return count;
}
int subarraySum(vector<int>& nums, int k) {
int count = 0;
int n = nums.size();
for (int i = 0; i < n; i++) {
long long sum = 0;
for (int j = i; j < n; j++) {
sum += nums[j];
if (sum == k) count++;
}
}
return count;
}
public int subarraySum(int[] nums, int k) {
int count = 0;
int n = nums.length;
for (int i = 0; i < n; i++) {
long sum = 0;
for (int j = i; j < n; j++) {
sum += nums[j];
if (sum == k) count++;
}
}
return count;
}
def subarray_sum(nums, k):
count = 0
n = len(nums)
for i in range(n):
total = 0
for j in range(i, n):
total += nums[j]
if total == k: count += 1
return count
function subarraySum(nums: number[], k: number): number {
let count = 0;
for (let i = 0; i < nums.length; i++) {
let sum = 0;
for (let j = i; j < nums.length; j++) {
sum += nums[j];
if (sum === k) count++;
}
}
return count;
}
int subarraySum(vector<int>& nums, int k) {
vector<long long> prefix{0};
for (int x : nums) prefix.push_back(prefix.back() + x);
unordered_map<long long, int> seen{{0, 1}};
int count = 0;
for (int end = 1; end < (int)prefix.size(); end++) {
auto it = seen.find(prefix[end] - k);
count += (it == seen.end()) ? 0 : it->second;
seen[prefix[end]]++;
}
return count;
}
public int subarraySum(int[] nums, int k) {
List<Long> prefix = new ArrayList<>(); prefix.add(0L);
for (int x : nums) prefix.add(prefix.get(prefix.size() - 1) + x);
Map<Long, Integer> seen = new HashMap<>(); seen.put(0L, 1);
int count = 0;
for (int end = 1; end < prefix.size(); end++) {
count += seen.getOrDefault(prefix.get(end) - k, 0);
seen.merge(prefix.get(end), 1, Integer::sum);
}
return count;
}
def subarray_sum(nums, k):
prefix = [0]
for x in nums: prefix.append(prefix[-1] + x)
seen = {0: 1}
count = 0
for end in range(1, len(prefix)):
count += seen.get(prefix[end] - k, 0)
seen[prefix[end]] = seen.get(prefix[end], 0) + 1
return count
function subarraySum(nums: number[], k: number): number {
const prefix = [0];
for (const x of nums) prefix.push(prefix[prefix.length - 1] + x);
const seen = new Map<number, number>([[0, 1]]);
let count = 0;
for (let end = 1; end < prefix.length; end++) {
count += seen.get(prefix[end] - k) ?? 0;
seen.set(prefix[end], (seen.get(prefix[end]) ?? 0) + 1);
}
return count;
}
int subarraySum(vector<int>& nums, int k) {
unordered_map<long long, int> seen{{0, 1}};
long long sum = 0; int count = 0;
for (int x : nums) {
sum += x;
long long need = sum - k;
auto it = seen.find(need);
count += (it == seen.end()) ? 0 : it->second;
seen[sum]++;
}
return count;
}
public int subarraySum(int[] nums, int k) {
Map<Long, Integer> seen = new HashMap<>(); seen.put(0L, 1);
long sum = 0; int count = 0;
for (int x : nums) {
sum += x;
long need = sum - k;
count += seen.getOrDefault(need, 0);
seen.merge(sum, 1, Integer::sum);
}
return count;
}
def subarray_sum(nums, k):
seen = {0: 1}
total = count = 0
for x in nums:
total += x
need = total - k
count += seen.get(need, 0)
seen[total] = seen.get(total, 0) + 1
return count
function subarraySum(nums: number[], k: number): number {
const seen = new Map<number, number>([[0, 1]]);
let sum = 0, count = 0;
for (const x of nums) {
sum += x;
const need = sum - k;
count += seen.get(need) ?? 0;
seen.set(sum, (seen.get(sum) ?? 0) + 1);
}
return count;
}