Skip to content

Commit a366ea5

Browse files
author
Zhang Jin
committed
和为k的子数组
1 parent 62a4924 commit a366ea5

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.jinchanc.hot100;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
8+
* @since 2025/1/14 10:31
9+
*/
10+
public class PrefixSum {
11+
12+
public static int findPrefixSum(int[] nums, int k) {
13+
List<Integer> prefixSum = new ArrayList<>();
14+
int count = 0;
15+
for (int i = 0; i < nums.length; i++) {
16+
if (i == 0) {
17+
prefixSum.add(nums[i]);
18+
} else {
19+
prefixSum.add(nums[i] + prefixSum.get(i - 1));
20+
}
21+
}
22+
23+
// 左右边界条件理解
24+
// x - sum = y 条件?
25+
for (int i = -1; i < nums.length - 1; i++) {
26+
for (int j = i + 1; j < nums.length; j++) {
27+
int sum;
28+
if (i == -1) {
29+
sum = prefixSum.get(j);
30+
} else {
31+
sum = prefixSum.get(j) - prefixSum.get(i);
32+
}
33+
34+
if (sum == k) {
35+
count++;
36+
}
37+
}
38+
}
39+
40+
return count;
41+
}
42+
43+
public static void main(String[] args) {
44+
System.out.println(findPrefixSum(new int[]{1, 2, 3}, 3));
45+
}
46+
}

basic/algorithm/src/main/java/com/jinchanc/hot100/SlideWindow.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,18 @@ public List<Integer> findAnagrams(String s, String p) {
4646
}
4747
return result;
4848
}
49+
50+
// 和为k的子数组
51+
public int countK(int[] nums, int k) {
52+
int count = 0;
53+
int sum = 0, left = 0, right = 0;
54+
for (int i = 0; i < nums.length; i++) {
55+
int num = nums[i];
56+
57+
}
58+
return count;
59+
}
60+
4961
public static void main(String[] args) {
5062
System.out.println(new SlideWindow().findAnagrams("abcba", "abc").equals(List.of(0, 2)));
5163
}

0 commit comments

Comments
 (0)