前缀和 添加Go语言代码
parent
7f4947f527
commit
e807dc849d
|
@ -101,3 +101,35 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
Go Code:
|
||||
|
||||
```go
|
||||
func checkSubarraySum(nums []int, k int) bool {
|
||||
m := map[int]int{}
|
||||
// 由于前缀和%k可能为0,所以需要给出没有元素的时候,索引位置,即-1
|
||||
m[0] = -1
|
||||
sum := 0
|
||||
for i, num := range nums {
|
||||
sum += num
|
||||
key := sum % k
|
||||
/*
|
||||
// 题目中告诉k >= 1
|
||||
key := sum
|
||||
if k != 0 {
|
||||
key = sum % k
|
||||
}
|
||||
*/
|
||||
if v, ok := m[key]; ok {
|
||||
if i - v >= 2 {
|
||||
return true
|
||||
}
|
||||
// 避免更新最小索引
|
||||
continue
|
||||
}
|
||||
// 保存的是最小的索引
|
||||
m[key] = i
|
||||
}
|
||||
return false
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -183,3 +183,24 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
Go Code:
|
||||
|
||||
```GO
|
||||
func subarraySum(nums []int, k int) int {
|
||||
m := map[int]int{}
|
||||
// m存的是前缀和,没有元素的时候,和为0,且有1个子数组(空数组)满足条件,即m[0] = 1
|
||||
m[0] = 1
|
||||
sum := 0
|
||||
cnt := 0
|
||||
for _, num := range nums {
|
||||
sum += num
|
||||
if v, ok := m[sum - k]; ok {
|
||||
cnt += v
|
||||
}
|
||||
// 更新满足前缀和的子数组数量
|
||||
m[sum]++
|
||||
}
|
||||
return cnt
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -108,3 +108,23 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
Go Code:
|
||||
|
||||
```go
|
||||
func pivotIndex(nums []int) int {
|
||||
presum := 0
|
||||
for _, num := range nums {
|
||||
presum += num
|
||||
}
|
||||
var leftsum int
|
||||
for i, num := range nums {
|
||||
// 比较左半和右半是否相同
|
||||
if presum - leftsum - num == leftsum {
|
||||
return i
|
||||
}
|
||||
leftsum += num
|
||||
}
|
||||
return -1
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
@ -132,3 +132,21 @@ public:
|
|||
};
|
||||
```
|
||||
|
||||
Go Code:
|
||||
|
||||
```go
|
||||
func subarraysDivByK(nums []int, k int) int {
|
||||
m := make(map[int]int)
|
||||
cnt := 0
|
||||
sum := 0
|
||||
m[0] = 1
|
||||
for _, num := range nums {
|
||||
sum += num
|
||||
key := (sum % k + k) % k
|
||||
cnt += m[key]
|
||||
m[key]++
|
||||
}
|
||||
return cnt
|
||||
}
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue