Skip to content

Commit 79dad68

Browse files
committed
feat: update solutions to lc problem: No.0560
No.0560.Subarray Sum Equals K
1 parent 4c5bef3 commit 79dad68

File tree

8 files changed

+90
-100
lines changed

8 files changed

+90
-100
lines changed

solution/0500-0599/0560.Subarray Sum Equals K/README.md

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@
3535
```python
3636
class Solution:
3737
def subarraySum(self, nums: List[int], k: int) -> int:
38-
mp = Counter()
39-
mp[0] = 1
40-
res = s = 0
38+
counter = Counter({0: 1})
39+
ans = s = 0
4140
for num in nums:
4241
s += num
43-
res += mp[s - k]
44-
mp[s] += 1
45-
return res
42+
ans += counter[s - k]
43+
counter[s] += 1
44+
return ans
4645
```
4746

4847
### **Java**
@@ -52,16 +51,15 @@ class Solution:
5251
```java
5352
class Solution {
5453
public int subarraySum(int[] nums, int k) {
55-
Map<Integer, Integer> map = new HashMap<>();
56-
map.put(0, 1);
57-
int res = 0;
58-
int s = 0;
54+
Map<Integer, Integer> counter = new HashMap<>();
55+
counter.put(0, 1);
56+
int ans = 0, s = 0;
5957
for (int num : nums) {
6058
s += num;
61-
res += map.getOrDefault(s - k, 0);
62-
map.put(s, map.getOrDefault(s, 0) + 1);
59+
ans += counter.getOrDefault(s - k, 0);
60+
counter.put(s, counter.getOrDefault(s, 0) + 1);
6361
}
64-
return res;
62+
return ans;
6563
}
6664
}
6765
```
@@ -71,13 +69,13 @@ class Solution {
7169
```ts
7270
function subarraySum(nums: number[], k: number): number {
7371
let ans = 0,
74-
pre = 0;
75-
let hashTable = new Map();
76-
hashTable.set(0, 1);
77-
for (let num of nums) {
78-
pre += num;
79-
ans += hashTable.get(pre - k) || 0;
80-
hashTable.set(pre, (hashTable.get(pre) || 0) + 1);
72+
s = 0;
73+
let counter = new Map();
74+
counter[0] = 1;
75+
for (const num of nums) {
76+
s += num;
77+
ans += counter[s - k] || 0;
78+
counter[s] = (counter[s] || 0) + 1;
8179
}
8280
return ans;
8381
}
@@ -89,16 +87,16 @@ function subarraySum(nums: number[], k: number): number {
8987
class Solution {
9088
public:
9189
int subarraySum(vector<int>& nums, int k) {
92-
unordered_map<int, int> mp;
93-
mp[0] = 1;
94-
int res = 0, s = 0;
95-
for (int num : nums)
90+
unordered_map<int, int> counter;
91+
counter[0] = 1;
92+
int ans = 0, s = 0;
93+
for (int& num : nums)
9694
{
9795
s += num;
98-
res += mp[s - k];
99-
++mp[s];
96+
ans += counter[s - k];
97+
++counter[s];
10098
}
101-
return res;
99+
return ans;
102100
}
103101
};
104102
```
@@ -107,15 +105,14 @@ public:
107105
108106
```go
109107
func subarraySum(nums []int, k int) int {
110-
mp := make(map[int]int)
111-
mp[0] = 1
112-
res, s := 0, 0
108+
counter := map[int]int{0: 1}
109+
ans, s := 0, 0
113110
for _, num := range nums {
114111
s += num
115-
res += mp[s-k]
116-
mp[s]++
112+
ans += counter[s-k]
113+
counter[s]++
117114
}
118-
return res
115+
return ans
119116
}
120117
```
121118

solution/0500-0599/0560.Subarray Sum Equals K/README_EN.md

Lines changed: 30 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,31 +32,29 @@
3232
```python
3333
class Solution:
3434
def subarraySum(self, nums: List[int], k: int) -> int:
35-
mp = Counter()
36-
mp[0] = 1
37-
res = s = 0
35+
counter = Counter({0: 1})
36+
ans = s = 0
3837
for num in nums:
3938
s += num
40-
res += mp[s - k]
41-
mp[s] += 1
42-
return res
39+
ans += counter[s - k]
40+
counter[s] += 1
41+
return ans
4342
```
4443

4544
### **Java**
4645

4746
```java
4847
class Solution {
4948
public int subarraySum(int[] nums, int k) {
50-
Map<Integer, Integer> map = new HashMap<>();
51-
map.put(0, 1);
52-
int res = 0;
53-
int s = 0;
49+
Map<Integer, Integer> counter = new HashMap<>();
50+
counter.put(0, 1);
51+
int ans = 0, s = 0;
5452
for (int num : nums) {
5553
s += num;
56-
res += map.getOrDefault(s - k, 0);
57-
map.put(s, map.getOrDefault(s, 0) + 1);
54+
ans += counter.getOrDefault(s - k, 0);
55+
counter.put(s, counter.getOrDefault(s, 0) + 1);
5856
}
59-
return res;
57+
return ans;
6058
}
6159
}
6260
```
@@ -66,13 +64,13 @@ class Solution {
6664
```ts
6765
function subarraySum(nums: number[], k: number): number {
6866
let ans = 0,
69-
pre = 0;
70-
let hashTable = new Map();
71-
hashTable.set(0, 1);
72-
for (let num of nums) {
73-
pre += num;
74-
ans += hashTable.get(pre - k) || 0;
75-
hashTable.set(pre, (hashTable.get(pre) || 0) + 1);
67+
s = 0;
68+
let counter = new Map();
69+
counter[0] = 1;
70+
for (const num of nums) {
71+
s += num;
72+
ans += counter[s - k] || 0;
73+
counter[s] = (counter[s] || 0) + 1;
7674
}
7775
return ans;
7876
}
@@ -84,16 +82,16 @@ function subarraySum(nums: number[], k: number): number {
8482
class Solution {
8583
public:
8684
int subarraySum(vector<int>& nums, int k) {
87-
unordered_map<int, int> mp;
88-
mp[0] = 1;
89-
int res = 0, s = 0;
90-
for (int num : nums)
85+
unordered_map<int, int> counter;
86+
counter[0] = 1;
87+
int ans = 0, s = 0;
88+
for (int& num : nums)
9189
{
9290
s += num;
93-
res += mp[s - k];
94-
++mp[s];
91+
ans += counter[s - k];
92+
++counter[s];
9593
}
96-
return res;
94+
return ans;
9795
}
9896
};
9997
```
@@ -102,15 +100,14 @@ public:
102100
103101
```go
104102
func subarraySum(nums []int, k int) int {
105-
mp := make(map[int]int)
106-
mp[0] = 1
107-
res, s := 0, 0
103+
counter := map[int]int{0: 1}
104+
ans, s := 0, 0
108105
for _, num := range nums {
109106
s += num
110-
res += mp[s-k]
111-
mp[s]++
107+
ans += counter[s-k]
108+
counter[s]++
112109
}
113-
return res
110+
return ans
114111
}
115112
```
116113

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
class Solution {
22
public:
33
int subarraySum(vector<int>& nums, int k) {
4-
unordered_map<int, int> mp;
5-
mp[0] = 1;
6-
int res = 0, s = 0;
7-
for (int num : nums)
4+
unordered_map<int, int> counter;
5+
counter[0] = 1;
6+
int ans = 0, s = 0;
7+
for (int& num : nums)
88
{
99
s += num;
10-
res += mp[s - k];
11-
++mp[s];
10+
ans += counter[s - k];
11+
++counter[s];
1212
}
13-
return res;
13+
return ans;
1414
}
1515
};
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
func subarraySum(nums []int, k int) int {
2-
mp := make(map[int]int)
3-
mp[0] = 1
4-
res, s := 0, 0
2+
counter := map[int]int{0: 1}
3+
ans, s := 0, 0
54
for _, num := range nums {
65
s += num
7-
res += mp[s-k]
8-
mp[s]++
6+
ans += counter[s-k]
7+
counter[s]++
98
}
10-
return res
9+
return ans
1110
}
Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
class Solution {
22
public int subarraySum(int[] nums, int k) {
3-
Map<Integer, Integer> map = new HashMap<>();
4-
map.put(0, 1);
5-
int res = 0;
6-
int s = 0;
3+
Map<Integer, Integer> counter = new HashMap<>();
4+
counter.put(0, 1);
5+
int ans = 0, s = 0;
76
for (int num : nums) {
87
s += num;
9-
res += map.getOrDefault(s - k, 0);
10-
map.put(s, map.getOrDefault(s, 0) + 1);
8+
ans += counter.getOrDefault(s - k, 0);
9+
counter.put(s, counter.getOrDefault(s, 0) + 1);
1110
}
12-
return res;
11+
return ans;
1312
}
1413
}
Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
class Solution:
22
def subarraySum(self, nums: List[int], k: int) -> int:
3-
mp = Counter()
4-
mp[0] = 1
5-
res = s = 0
3+
counter = Counter({0: 1})
4+
ans = s = 0
65
for num in nums:
76
s += num
8-
res += mp[s - k]
9-
mp[s] += 1
10-
return res
7+
ans += counter[s - k]
8+
counter[s] += 1
9+
return ans
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
function subarraySum(nums: number[], k: number): number {
22
let ans = 0,
3-
pre = 0;
4-
let hashTable = new Map();
5-
hashTable.set(0, 1);
6-
for (let num of nums) {
7-
pre += num;
8-
ans += hashTable.get(pre - k) || 0;
9-
hashTable.set(pre, (hashTable.get(pre) || 0) + 1);
3+
s = 0;
4+
let counter = new Map();
5+
counter[0] = 1;
6+
for (const num of nums) {
7+
s += num;
8+
ans += counter[s - k] || 0;
9+
counter[s] = (counter[s] || 0) + 1;
1010
}
1111
return ans;
1212
}

solution/0800-0899/0886.Possible Bipartition/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,6 @@ if find(a) != find(b):
9898
```
9999

100100
模板 3——维护到祖宗节点距离的并查集:
101-
x
102101

103102
```python
104103
# 初始化,p存储每个点的父节点,d[x]存储x到p[x]的距离

0 commit comments

Comments
 (0)