前缀和代码

This commit is contained in:
3119005212
2021-04-27 15:11:05 +08:00
parent e8255d73ec
commit 8ef63207ac
5 changed files with 170 additions and 2 deletions

View File

@@ -87,6 +87,8 @@ int key = (presum % K + K) % K;
那么这个题目我们可不可以用数组代替 map 当然也是可以的因为此时我们的哈希表存的是余数余数最大也只不过是 K-1所以我们可以用固定长度 K 的数组来模拟哈希表
Java Code:
```java
class Solution {
public int subarraysDivByK(int[] A, int K) {
@@ -107,3 +109,26 @@ class Solution {
}
```
C++ Code:
```cpp
class Solution {
public:
int subarraysDivByK(vector<int>& A, int K) {
vector <int> map (K, 0);
int len = A.size();
int count = 0;
int presum = 0;
map[0] = 1;
for (int i = 0; i < len; ++i) {
presum += A[i];
//求key
int key = (presum % K + K) % K;
//count添加次数并将当前的map[key]++;
count += (map[key]++);
}
return count;
}
};
```